Microsoft图表控件和X轴时间刻度格式
我的winforms应用程序中有一个Microsoft Chart Controls。
我目前在循环中播放X和y值。 我也将X轴格式设置为
ChartAreas[0].AxisX.LabelStyle.Format={"00:00:00"}
这作为时间格式工作正常,但是我注意到一旦我的时间值超过60秒(即00:00:60),而不是比例移动到1分钟(即00:01:00)它变为61 (即00:00:61)一直到99分(00:00:99)然后(00:01:00)
有没有办法解决这个问题?
我怀疑LabelStyle.Format
属性的使用方式与string.Format(mySringFormat,objToFormat)
类似。
因此,假设你的底层X对象类型是double
,它只会打印一个冒号分隔的 double(例如4321
将是00:43:21
)。
AFAIK,没有一种简单的方法可以使用字符串格式打印像时间值这样的double
值。
如果您可以更改填充图表的代码,我建议您为X值传递DateTime
,然后您将能够使用自定义DateTime
格式,例如
"HH:mm:ss"
或其他人
编辑:
根据你的评论:
// create a base date at the beginning of the method that fills the chart. // Today is just an example, you can use whatever you want // as the date part is hidden using the format = "HH:mm:ss" DateTime baseDate = DateTime.Today; var x = baseDate.AddSeconds((double)value1); var y = (double)value2; series.Points.addXY(x, y);
编辑2:
这是一个完整的示例,应该很容易将此逻辑应用于您的代码:
上述就是C#学习教程:Microsoft图表控件和X轴时间刻度格式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
private void PopulateChart() { int elements = 100; // creates 100 random X points Random r = new Random(); List xValues = new List (); double currentX = 0; for (int i = 0; i < elements; i++) { xValues.Add(currentX); currentX = currentX + r.Next(1, 100); } // creates 100 random Y values List yValues = new List (); for (int i = 0; i < elements; i++) { yValues.Add(r.Next(0, 20)); } // remove all previous series chart1.Series.Clear(); var series = chart1.Series.Add("MySeries"); series.ChartType = SeriesChartType.Line; series.XValueType = ChartValueType.Auto; DateTime baseDate = DateTime.Today; for (int i = 0; i < xValues.Count; i++) { var xDate = baseDate.AddSeconds(xValues[i]); var yValue = yValues[i]; series.Points.AddXY(xDate, yValue); } // show an X label every 3 Minute chart1.ChartAreas[0].AxisX.Interval = 3.0; chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Minutes; chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss"; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/987528.html