如何从数据库中读取数据显示成曲线图 是这样的我的数据库表中有一列叫做“平均值”,一列叫做“时间” 我想读取一段时间内的平均值和时间,在页面显示成一个横坐标为“时间”,纵坐标为“平均值”的曲线图,显示这段时间内的平均值走势 ------解决方案-------------------- 如果要你自己用GDI画坐标画曲线的话,太不值得. 用这个组件吧, 装微软的机器都有, 你搜索 MSChart 的资料, 和EXCEL里画图一样方便 -----我贴一点给你 MSChart应用描绘X,Y坐标点 在一个温度采集系统中,希望把采集来的各项温度值实时显示,用msChart控件绘制曲线走势图: 温度项用曲线表示; 横坐标为时间,纵坐标为温度值,均要求滚动显示;随着时间的增长,把采集来的温度显示出来,在每次采样完成后,刷新屏幕。 ---------------------------------- 代码很长!其实有好多都是系统自己加的,不过你们应该看的懂! 经过很多次的测试没有一点问题! 下面第一个问题如何加:AxMSChart20Lib到自己的C#系统上(很多人都问了,所以告诉大家很简单的) 在[工具]->[添加/移出工具箱]->鼠标单击->选择[COM组件] 找到Mcrosoft Chart Control 6.0(SP4)(oledb) 选中,然后[确定],你会发现你的工具箱里面有了一个这样的控件了!然后接着开始写代码! //设计原理,由于axMSChart1的数据是直接可以接受一个二为数组的, //所以我把事先读好的数据放到一个数组里 //注意数据库对应二为数组,是这样的行是一位,列是二位; //所以我们看看就这样做 //由于楼主提出以时间(第2列)为横坐标,压力(第4列)为纵坐标的曲线图 //所以我们要把时间放在数组里的第一位,而压力放在第2位 //因为在axMSChart里数组第一位代表横坐标 //最后我们申明一个2纬数组,由于2纬数组一位代表行 //所以我们可以用ds.Tables["newtb"].Rows.Count取得行的总数 //而我们只要2列就可以了,所以我们是直接知道2纬数组的第2位的值,也就是2 //最后也是最关键的,也就是axMSChart需要数组里的第一个值来描述坐标点的说明 (★经过HEDDA测试,此处放屁。第一行也是数据行 mschart 2.0) //所以我们就要空出一个位的数组来做描述 //因此数组真正的长度为ds.Tables["newtb"].Rows.Count+1 Object[,] myay=new Object[ds.Tables["newtb"].Rows.Count+1,2]; myay[0,0]=(Object)"时间描述";//这里可以不用写什么 myay[0,1]=(Object)"压力描述";//这里是描述坐标点的压力 for(int i=1;i<=ds.Tables["newtb"].Rows.Count;i++) { //这里是个重点,为什么要加上"["+"]" //其实这个axMSChart1玩意很有意识的,如果你的字符串是数字类型的描述 //就算是字符串类型也不会当成横坐标哦!! //嘿嘿有意识把,本人曾经为了这个问题搞了几天的! myay[i,0]=(Object)"["+ds.Tables["newtb"].Rows[i-1]["st"].ToString()+"]"; myay[i,1]=(Object)ds.Tables["newtb"].Rows[i-1]["yl"].ToString(); } //设计axMSChart1的数据 axMSChart1.ChartData = myay; //设计图表的表头名称和对齐方式 axMSChart1.Title.Text = "这里是一个图表"; axMSChart1.Legend.Location.LocationType = MSChart20Lib.VtChLocationType.VtChLocationTypeRight; axMSChart1.Legend.Location.Visible = true; //设计X轴名称 axMSChart1.Plot.get_Axis(MSChart20Lib.VtChAxisId.VtChAxisIdX, null).AxisTitle.Text = "这里是时间描述"; //设计Y轴名称 axMSChart1.Plot.get_Axis(MSChart20Lib.VtChAxisId.VtChAxisIdY, null).AxisTitle.Text = "这里是压力描述"; //设计图表形状的描述方式,是并图还是线图等等 //axMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dLine; } 数据结构型如: //V-I d[0,0] = "V"; d[0,1] = "I"; //--------------------------- d[1,0] = "0"; d[1,1] = "5"; d[2,0] = "1"; d[2,1] = "5"; d[3,0] = "2"; d[3,1] = "3"; d[4,0] = "3"; d[4,1] = "1"; d[5,0] = "4"; d[5,1] = "0"; ------解决方案-------------------- 如果是我 我会采用 webchart 或者 flot 具体应用 谷歌搜索 webchart 或者 flot ------解决方案-------------------- 用webchart比较简单,csdn上就有下载 ------解决方案-------------------- |
|