C#chart使用总结
Chart的拖入
- 首先在引用处添加引用System.Windows.Forms.DataVisualization
2. 然后在工具栏找到数据然后出现Chart
拖入界面如图
Chart的属性设置
- 表名设置
在Titles这个集合中填加一个titles成员,设置它的Text就可以
- 图表类型及名字设置
设置Series的Name就是折线的名字,设置其ChartType就是它的图标类型折线、柱状等
- 图表坐标轴设置
ChartAreas中有Axes为坐标轴设置
原点位置设置
更详细的属性设置介绍,这篇里有:https://blog.youkuaiyun.com/qq_27825451/article/details/81305387
Chart数据绑定
我主要使用了两个
第一个:一个点一个点添加
aa的结构是:List<List<double>> 要画两个图,chLinkDelay是一个,chSyncAccuErr是另一个
所以List<double>中有两个值,bb[0]是LinkDelay,bb[1]是SyncAccuErr
foreach (var bb in aa.Value)
{
chLinkDelay.Series[0].Points.AddXY(aa.Value.IndexOf(bb), bb[0]);
chSyncAccuErr.Series[0].Points.AddXY(aa.Value.IndexOf(bb), bb[1]);
}
第二个:使用List添加
tyLinkDelay和tySyncAccuErr的结构是List;txData的结构是List就是点数
chLinkDelay.Series[0].Points.AddXY(txData, tyLinkDelay);
chSyncAccuErr.Series[0].Points.DataBindXY(txData, tySyncAccuErr);
添加线条:
Series ss = new Series();
ss.ChartType = SeriesChartType.Line;
ss.MarkerStyle = MarkerStyle.Diamond;
Series ss1 = new Series();
ss1.ChartType = SeriesChartType.Line;
ss1.MarkerStyle = MarkerStyle.Diamond;
chLinkDelay.Series.Add(ss);
chSyncAccuErr.Series.Add(ss1);
一开始使用这样添加,结果chLinkDelay的绘图出错,后发现因为ss与chart绑定状态,
Series ss = new Series();
ss.ChartType = SeriesChartType.Line;
ss.MarkerStyle = MarkerStyle.Diamond;
chLinkDelay.Series.Add(ss);
chSyncAccuErr.Series.Add(ss);
然后数据添加是这样添加
chLinkDelay.Series[0].Points.AddXY(txData, tyLinkDelay);
chSyncAccuErr.Series[0].Points.DataBindXY(txData, tySyncAccuErr);
结果就是ss变为chSyncAccuErr的数据,chLinkDelay的绘图Y值也与chSyncAccuErr一样