从数据库获取时间。如果按月查询横坐标就是天,如果选择按天查询横坐标就是 24小时。纵坐标是水压Mpa。绘制曲线图。会的,能实现的我给100分。不会的能提出建设性意见的一样给分,大家帮帮忙!!!!!!
(我这边给的分数少有人回答上来我加分,因为上次发了一个贴居然一个人没人回答我,结贴要不浪费!1!)

解决方案 »

  1.   

    如果是vs2010的话可以用Chart控件的
      

  2.   

    需求很简单,限于时间关系,给你点建议吧。1. 如果是winform程序,用ZedGraph,是免费的.net绘图控件;如果是web程序,那就更简单了,后台提供JSON格式的数据,前端用Google Chart Tools或者jQuery的插件都可以。2. 用户提交查询时,保存查询条件(按月或按天),然后根据条件,参考所用控件的API,指定横轴即可。不过ZedGraph横轴可以是自动的。
      

  3.   

    SadEmpire 首先谢谢你,绘图这块不是很懂,能交流下吗?QQ521070107 急需这个功能。
      

  4.   

    推荐: MSChart 
    如此简单的功能
      

  5.   

    推荐WebChart
    参考
      

  6.   

    我在用zedgraph,感觉还是很不错的,给段代码你参考下:this.zedGraphControl1.GraphPane.Title.Text = "一级烘干塔温度折线图";//图表标题
    this.zedGraphControl1.GraphPane.XAxis.Title.Text = "时间";//X轴标题
    this.zedGraphControl1.GraphPane.YAxis.Title.Text = "温度";//y轴标题
    //如果坐标轴标度不想使用数值,而是使用文本,需要设置坐标轴类型为text
    this.zedGraphControl1.GraphPane.XAxis.Type = AxisType.Text;
    //若想从数据表的所有数据中找出最近的十条数据,可以用top关键字,该关键字的功能是将排序查询结果的前n条记录找出来
    MyDS_Grid = MyDataClass.getDataSet("Select top 10 * from tb_zzt order by pczsj desc", "tb_zzt");
    string[] szx = new string[MyDS_Grid.Tables[0].Rows.Count];
    double[] szy = new double[MyDS_Grid.Tables[0].Rows.Count];for (int i = 0; i < MyDS_Grid.Tables[0].Rows.Count;i--)
    {
      szx[i] = Convert.ToDouble(MyDS_Grid.Tables[0].Rows[i]["你的时间列"]);
      szy[i] = Convert.ToDouble(MyDS_Grid.Tables[0].Rows[i]["你的水压列"]);
    }
    //addcurve方法的几个参数分别代表了:1折线表示含义;2X轴数据;3Y轴数据;4折线颜色;5折线类型
    //此处需要注意,若两坐标轴均为数值型,则直接添加到addcurve方法中即可,本实例的X轴采用了text类型,所以使用addcurve方法时
    //X轴数据设置为空null,然后再在后面单独添加
    LineItem myCurve = this.zedGraphControl1.GraphPane.AddCurve("监控点一温度", null, szy, Color.Red, SymbolType.Diamond);
    this.zedGraphControl1.GraphPane.XAxis.Scale.TextLabels = szx;
    //刷新、重绘折线图
    this.zedGraphControl1.AxisChange();
    this.zedGraphControl1.Refresh();如果你的图表x轴不需要用text类型,那可以这么写:this.zedGraphControl1.GraphPane.Title.Text = "一级烘干塔温度折线图";//图表标题
    this.zedGraphControl1.GraphPane.XAxis.Title.Text = "时间";//X轴标题
    this.zedGraphControl1.GraphPane.YAxis.Title.Text = "温度";//y轴标题
    //若想从数据表的所有数据中找出最近的十条数据,可以用top关键字,该关键字的功能是将排序查询结果的前n条记录找出来
    MyDS_Grid = MyDataClass.getDataSet("Select top 10 * from tb_zzt order by pczsj desc", "tb_zzt");
    double[] szx = new string[MyDS_Grid.Tables[0].Rows.Count];
    double[] szy = new double[MyDS_Grid.Tables[0].Rows.Count];for (int i = 0; i < MyDS_Grid.Tables[0].Rows.Count;i--)
    {
      szx[i] = Convert.ToDouble(MyDS_Grid.Tables[0].Rows[i]["你的时间列"]);
      szy[i] = Convert.ToDouble(MyDS_Grid.Tables[0].Rows[i]["你的水压列"]);
    }
    //addcurve方法的几个参数分别代表了:1折线表示含义;2X轴数据;3Y轴数据;4折线颜色;5折线类型
    //此处需要注意,若两坐标轴均为数值型,则直接添加到addcurve方法中即可,本实例的X轴采用了text类型,所以使用addcurve方法时
    LineItem myCurve = this.zedGraphControl1.GraphPane.AddCurve("监控点一温度", szx, szy, Color.Red, SymbolType.Diamond);
    //刷新、重绘折线图
    this.zedGraphControl1.AxisChange();
    this.zedGraphControl1.Refresh();
      

  7.   

    你好 这位兄弟能加我一下吗??我刚学的GDI+ 我可以和你分享一下你的么,我的QQ521070107