ChartControl动态添加曲线,X轴Label间隔显示
程序员文章站
2022-05-19 12:04:46
...
- 引用
using System;
using System.Drawing;
using DevExpress.XtraCharts;
- 创建chart
ChartControl chartControl1 = new ChartControl();
Series series = new Series("曲线标题", ViewType.SwiftPlot);//主要这里采用的曲线type为SwiftPlot,经测试Line和Spline不适用
series.View.Color = Color.Red;
series.ArgumentScaleType = ScaleType.DateTime;//x轴类型,此处必须定义为DateTime
series.ValueScaleType = ScaleType.Numerical;//y轴类型
chartControl1.Series.Add(series);
SwiftPlotDiagram diagram = (SwiftPlotDiagram)chartControl1.Diagram;//SwiftPlot曲线形式对于的Diagram为SwiftPlotDiagram
diagram.AxisX.Label.TextPattern = "{A:HH:mm:ss}";//注意此处强制定义X轴Label的显示是时分秒,当然不做此处理,则显示本机物理时间
diagram.AxisX.GridLines.Visible = true;//显示X轴的坐标主间隔线
- 曲线更新
private void timer1_Tick(object sender, EventArgs e)
{
double end = Math.Round(rd.NextDouble(), 1);//0~1随机数
chartControl1.Series[0].Points.Add(new SeriesPoint(DateTime.Now, end));
}
- 曲线效果
. 添加链接描述 - 如果希望数据有序滚动显示的话,可对X轴添加坐标轴
diagram.EnableAxisXScrolling = true;
diagram.AxisX.WholeRange.Auto = true;
在曲线更新时,添加代码如下
DateTime mintime = DateTime.Now.AddSeconds(-10);
DateTime maxtime = DateTime.Now.AddSeconds(1);
SwiftPlotDiagram diagram = chartControl1.Diagram as SwiftPlotDiagram;
if (diagram != null && (diagram.AxisX.DateTimeScaleOptions.MeasureUnit == DateTimeMeasureUnit.Millisecond || diagram.AxisX.DateTimeScaleOptions.ScaleMode == ScaleMode.Continuous))//判断条件可自行设计
{
diagram.AxisX.VisualRange.SetMinMaxValues(mintime, maxtime);//可视范围定义在两个时间段之间
}
- 曲线效果如下
添加链接描述
上一篇: 湘桥区