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);}}}}}

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功