各位。。。帮帮忙啊!!!如何从数据库中读取数据显示成曲线图
是这样的我的数据库表中有一列叫做“平均值”,一列叫做“时间”
我想读取一段时间内的平均值和时间,在页面显示成一个横坐标为“时间”,纵坐标为“平均值”的曲线图,显示这段时间内的平均值走势
------解决方案--------------------如果要你自己用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上就有下载
------解决方案--------------------