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:
这是一个完整的示例,应该很容易将此逻辑应用于您的代码:
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"; }
- EPPlus是否要求在服务器上安装Excel?
- 从Combobox C#中选择默认项目
- 强制EventProcessorHost将失败的Azure Event Hub eventData重新传递给IEventProcessor.ProcessEvents方法
- 如何在使用XmlSerializer时将注释写入XML文件?
- 为什么“linq to sql”查询以与常规SQL查询不同的FROM关键字开头?
- 如何以编程方式连接到VPN?
- 将array的字节转换为image时,argumentException是未处理的错误
- 如何使用WPF MediaKit或类似程序从使用DES创建的DirectShowfilter图形渲染到WPF控件?
- 响应式UI提示