chart控件学习

要使用好Chart控件我们先得明确它的结构。如下图所示:(只画出了大概结构,更多的细节会使得图片可视性差)

1. 一个chart可以包含多个chartArea。 chartArea是具体的坐标区域。

2. 每一个chartArea主要包含X轴,Y轴,副X轴(上方),副Y轴(右方),绑定的线条,绑定的图例。 

3. 线条可以有许多,只要将线条绑定到chartArea就可以在对应的chartArea显示。

其树形实体结构如下所示: 对于每个实体里面的许多样式属性可以自行尝试研究。

综上可以对chart的结构有一个基本了解。接下来结合代码进行说明

1. 线条的创建   此处用于创建4条线段。

public Series maxTemp;
public Series avgTemp;
public Series minTemp;
public Series vibration;
maxTemp = new Series("maxTemp");
avgTemp = new Series("avgTemp");
minTemp = new Series("minTemp");
vibration = new Series("vibration");

2.设置线条的样式

//曲线的颜色
maxTemp.BorderColor = Color.Black;
maxTemp.Color = Color.Red;
avgTemp.BorderColor = Color.Black;
avgTemp.Color = Color.Green;
minTemp.BorderColor = Color.Black;
minTemp.Color = Color.Blue;
vibration.BorderColor = Color.Black;
vibration.Color = Color.Blue;

//曲线的宽度
maxTemp.BorderWidth = 2;
avgTemp.BorderWidth = 2;
avgTemp.BorderWidth = 2;
vibration.BorderWidth = 2;

//曲线的样式   有圆形曲线,阶梯形曲线,折线等等。
maxTemp.ChartType = SeriesChartType.Spline;    
avgTemp.ChartType = SeriesChartType.Spline;
minTemp.ChartType = SeriesChartType.Spline;
vibration.ChartType =SeriesChartType.Spline;

//曲线的阴影样式    可以让曲线更加突出有立体感。
maxTemp.ShadowOffset = 1;
avgTemp.ShadowOffset = 1;
minTemp.ShadowOffset = 1;
vibration.ShadowOffset = 1;
//标记的样式        设置曲线中 每个数据点标记的样式。可以在标记中显示数据点的值,但是太多
//数据点的话将没有可视性。
maxTemp.MarkerColor = Color.White;
maxTemp.MarkerStyle = MarkerStyle.Square;
avgTemp.MarkerColor = Color.White;
avgTemp.MarkerStyle = MarkerStyle.Square;
minTemp.MarkerColor = Color.White;
minTemp.MarkerStyle = MarkerStyle.Square;
vibration.MarkerColor = Color.White;
vibration.MarkerStyle = MarkerStyle.Square;

//设置线条的轴类型   主要设置以下方做X轴还是上方做X轴,左方做Y轴还是右方做Y轴
maxTemp.XAxisType = AxisType.Primary;
maxTemp.YAxisType = AxisType.Primary;
avgTemp.XAxisType = AxisType.Primary;
avgTemp.YAxisType = AxisType.Primary;
minTemp.XAxisType = AxisType.Primary;
minTemp.YAxisType = AxisType.Primary;
vibration.XAxisType = AxisType.Primary;
vibration.YAxisType = AxisType.Primary;          

2. ChartArea的创建和属性设置

public ChartArea mainArea2 = new ChartArea("areaDOVS");
  //设置图表区域 用户可以拖动游标   此处设置后用户可以通过拖动游标放大查看区域       
//设置X Y 轴坐标的标题。
mainArea1.AxisX.Title = "光纤分区号/(标量)";
mainArea1.AxisY.Title = "温度值/(摄氏度)";
mainArea2.AxisX.Title = "光纤震动位置/(m)";
mainArea2.AxisY.Title = "震动值/(a.u.)";
 
//设置网格。主网格 与主刻度对应 副网格与副刻度对应,从刻度向另一端画一条线。如果线条中数据过多,
//产生较多的网格线会 使得整个区域过于密集,甚至为全黑色。所以在数据点较多的情况小关闭副网格,甚至主网格。
mainArea1.AxisX.MajorGrid.Enabled = false;
mainArea1.AxisY.MajorGrid.Enabled = false;
mainArea1.AxisX.MinorTickMark.Enabled = false;
         
mainArea2.AxisX.MajorGrid.Enabled = false;
mainArea2.AxisY.MajorGrid.Enabled = false;
mainArea2.AxisX.MinorTickMark.Enabled = false;
//设置曲线横坐标值类型为时间类型
vibration.XValueType = ChartValueType.DateTime;
//将此线条绑定到的AxisX的标签设置时间格式。

 

 3. 创建图例 标题

 

Legend legend = new Legend();
ElementPosition p = new ElementPosition(0, 0, 12, 10); 

4.将前面创建的对象加入到自己所属的父实体中

chart2.ChartAreas.Add(mainArea1);  //将线条加入到chart的chartAreas集合属性中
chart2.ChartAreas.Add(mainArea2);
series4.ChartArea = "areaDOVS";   //将线条绑定到对应ChartArea 通过chartArea的名字就可以绑定
series3.ChartArea = "areaDTS";
chart2.Series.Add(series3);       //将线条加入到chart的series集合属性中。
chart2.Series.Add(series4);

5.示例效果。注意示例效果与前述代码无关,前述代码只为了说明

 

 

 

 

 

 

 

个人分类: C#CHART控件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值