欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ChartControl动态添加曲线,X轴Label间隔显示

程序员文章站 2022-05-19 12:04:46
...
  1. 引用
using System;
using System.Drawing;
using DevExpress.XtraCharts;
  1. 创建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轴的坐标主间隔线
  1. 曲线更新
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));
        }
  1. 曲线效果
    . 添加链接描述
  2. 如果希望数据有序滚动显示的话,可对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);//可视范围定义在两个时间段之间
            }
  1. 曲线效果如下
    添加链接描述