想要分的请进来,简单问题 从数据库获取时间。如果按月查询横坐标就是天,如果选择按天查询横坐标就是 24小时。纵坐标是水压Mpa。绘制曲线图。会的,能实现的我给100分。不会的能提出建设性意见的一样给分,大家帮帮忙!!!!!!(我这边给的分数少有人回答上来我加分,因为上次发了一个贴居然一个人没人回答我,结贴要不浪费!1!) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是vs2010的话可以用Chart控件的 需求很简单,限于时间关系,给你点建议吧。1. 如果是winform程序,用ZedGraph,是免费的.net绘图控件;如果是web程序,那就更简单了,后台提供JSON格式的数据,前端用Google Chart Tools或者jQuery的插件都可以。2. 用户提交查询时,保存查询条件(按月或按天),然后根据条件,参考所用控件的API,指定横轴即可。不过ZedGraph横轴可以是自动的。 SadEmpire 首先谢谢你,绘图这块不是很懂,能交流下吗?QQ521070107 急需这个功能。 推荐: MSChart 如此简单的功能 推荐WebChart参考 我在用zedgraph,感觉还是很不错的,给段代码你参考下:this.zedGraphControl1.GraphPane.Title.Text = "一级烘干塔温度折线图";//图表标题this.zedGraphControl1.GraphPane.XAxis.Title.Text = "时间";//X轴标题this.zedGraphControl1.GraphPane.YAxis.Title.Text = "温度";//y轴标题//如果坐标轴标度不想使用数值,而是使用文本,需要设置坐标轴类型为textthis.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(); 你好 这位兄弟能加我一下吗??我刚学的GDI+ 我可以和你分享一下你的么,我的QQ521070107 一个windowservice中有多个service怎么同时调用 关于Socket通信 get set例子 自己写的类库在Reporting Services中调用出错?? 小弟初学c#想拜师~~~~ 查询 及其 显示问题!!!! 有经验的进来帮忙架构一个系统!!! 代码看不懂了 谁解决了这个问题,送他几百分都可以!微软专家MVP请注意这个问题,可能是.net的bug 在web service中各个web method中共享对象的问题,请微软专家指点,thanks 请教一个.net方面页面数据获取的问题的 文件命名问题
如此简单的功能
参考
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();