《C画图控件Chart坐标轴刻度问题》由会员分享,可在线阅读,更多相关《C画图控件Chart坐标轴刻度问题(2页珍藏版)》请在金锄头文库上搜索。
1、C#画图控件chart坐标轴刻度问题项目中用到柱形图,当数据列比较多的时候,X轴的刻度标签会被精简为几个,无法在每个柱子下方显示其刻度值。这时候可以用自定义标签解决问题。效果如图:本例子,标签设置为时间字符串,要显示每个时间区间的统计图。自定义标签的使用很简单(三步),如下,就可以把“8:30”字符串放到刻度1的位置.CustomLabellabel=newCustomLabel();label.Text=“8:30”;label.ToPosition=1D;chart1.ChartAreas0.AxisX.CustomLabels.Add(label);需要注意的是,X坐标轴的数据类型,要有
2、Auto,千万别设置为DateTime,否则标签不显示。看完整代码如下(建立一个WinForm工程,拖上chart控件,0Forml.Designer.es中把seriall相关的代码去掉,我们在下面代码中创建数据系列1,2):usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Window
3、s.Forms.DataVisualization.Charting;namespaceWindowsFormsApplicationlpublicpartialclassForml:FormpublicForml()InitializeComponent();privatevoidForm1_Load(objectsender,EventArgse)Seriess1=newSeries();Seriess2=newSeries();Randomr=newRandom();for(inti=1;i13;i+)s1.Points.AddXY(i,r.Next(20,30);s2.Points.A
4、ddXY(i,r.Next(10,30);chart1.Series.Add(s1);chart1.Series.Add(s2);chart1.ChartAreas0.AxisX.MajorGrid.LineColor=Color.Green;DateTimet=DateTime.Parse(8:30);for(inti=1;i26;i+)这里i从1开始,如果是0,标签不显示,不明白为什么if(i%2=l)奇数刻度位置放标签,这样吧柱形图包在刻度之间CustomLabellabel=newCustomLabel();label.Text=t.ToShortTimeString();label.ToPosition=i;chart1.ChartAreas0.AxisX.CustomLabels.Add(label);label.GridTicks=GridTickTypes.Gridline;t=t.AddHours(1);