您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > C#画图控件Chart坐标轴刻度问题
C#画图控件chart–坐标轴刻度问题项目中用到柱形图,当数据列比较多的时候,X轴的刻度标签会被精简为几个,无法在每个柱子下方显示其刻度值。这时候可以用自定义标签解决问题。效果如图:本例子,标签设置为时间字符串,要显示每个时间区间的统计图。自定义标签的使用很简单(三步),如下,就可以把“8:30”字符串放到刻度1的位置.CustomLabellabel=newCustomLabel();label.Text=“8:30”;label.ToPosition=1D;chart1.ChartAreas[0].AxisX.CustomLabels.Add(label);需要注意的是,X坐标轴的数据类型,要有Auto,千万别设置为DateTime,否则标签不显示。看完整代码如下(建立一个WinForm工程,拖上chart控件,到Form1.Designer.cs中把serial1相关的代码去掉,我们在下面代码中创建数据系列1,2):usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Windows.Forms.DataVisualization.Charting;namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{publicForm1(){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.AddXY(i,r.Next(10,30));}chart1.Series.Add(s1);chart1.Series.Add(s2);chart1.ChartAreas[0].AxisX.MajorGrid.LineColor=Color.Green;DateTimet=DateTime.Parse(8:30);for(inti=1;i26;i++)//这里i从1开始,如果是0,标签不显示,不明白为什么{if(i%2==1)//奇数刻度位置放标签,这样吧柱形图包在刻度之间{CustomLabellabel=newCustomLabel();label.Text=t.ToShortTimeString();label.ToPosition=i;chart1.ChartAreas[0].AxisX.CustomLabels.Add(label);label.GridTicks=GridTickTypes.Gridline;t=t.AddHours(1);}}}}}
本文标题:C#画图控件Chart坐标轴刻度问题
链接地址:https://www.777doc.com/doc-3258156 .html