Devexpress中ChartControl绘制实时曲线

  1. 引用
using System.Drawing;
using DevExpress.XtraCharts;
using DevExpress.Utils;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrintingLinks;
  1. 创建图表
Series series1 = CreateSeries("变量1", ViewType.Line, Color.Brown);
Series series2 = CreateSeries("变量2", ViewType.Line, Color.DarkGray);
Series series3 = CreateSeries("变量3", ViewType.Line, Color.Red);
Series series4 = CreateSeries("变量4", ViewType.Line, Color.Blue);
Series series5 = CreateSeries("变量5", ViewType.Line, Color.DarkGreen);
Series series6 = CreateSeries("变量6", ViewType.Line, Color.Pink);
List<Series> list = new List<Series> { series1, series2, series3, series4, series5, series6 };
chart.Series.AddRange(list.ToArray());
chart.Legend.Visibility = DefaultBoolean.True; 
chart.SeriesTemplate.LabelsVisibility = DefaultBoolean.True;
for (int i = 0; i < list.Count; i++)
    CreateAxisY(this.chart, list[i]);
/// <summary>
/// 根据数据创建一个图形展现
/// </summary>
/// <param name="caption">图形标题</param>
/// <param name="viewType">图形类型</param>
/// <param name="rowIndex">图形数据的行序号</param>
/// <returns></returns>
public Series CreateSeries(string caption, ViewType viewType, Color _color)
{
    Series series = new Series(caption, viewType);
    series.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True;
    series.View.Color = _color;
    //必须设置ArgumentScaleType的类型,否则显示会转换为日期格式,导致不是希望的格式显示
    //也就是说,显示字符串的参数,必须设置类型为ScaleType.Qualitative
    series.ArgumentScaleType = ScaleType.Qualitative;
    //series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//显示标注标签
    return series;
}
/// <summary>
/// 创建图表的第二坐标系
/// </summary>
/// <param name="series">Series对象</param>
/// <returns></returns>
public SecondaryAxisY CreateAxisY(DevExpress.XtraCharts.ChartControl _chartCtrl, Series series)
{
    SecondaryAxisY myAxis = new SecondaryAxisY(series.Name);
    ((XYDiagram)_chartCtrl.Diagram).SecondaryAxesY.Add(myAxis);
    ((LineSeriesView)series.View).AxisY = myAxis;
    myAxis.Title.Text = series.Name;
    myAxis.Title.Alignment = StringAlignment.Far; //顶部对齐
    myAxis.Title.Visible = true; //显示标题
    myAxis.Title.Font = new Font("宋体", 9.0f);

    Color color = series.View.Color;//设置坐标的颜色和图表线条颜色一致

    myAxis.Title.TextColor = color;
    myAxis.Label.TextColor = color;
    myAxis.Color = color;

    return myAxis;
}
  1. 图表更新
int DataRowIndex;
private void UpdateChart()
{
    DataRowIndex = DataRowIndex + 1;
    //曲线点数超过10后水平左移
    if (chart.Series["变量1"].Points.Count >= 10)
    {
        for (int i = 0; i < chart.Series.Count; i++)
        {
            if (chart.Series[i].Points.Count > 0)
                chart.Series[i].Points.RemoveAt(0);
        }
    }
    for (int i=0;i<6;i++)
    {
        chart.Series["变量" + (i + 1).ToString()].Points.Add(new SeriesPoint(DataRowIndex, value[i]));
    }
    //第二坐标系归一化
    for (int i = 0; i < chart.Series.Count; i++)
    {
        if (chart.Series[i].Points.Count > 0)
        {
            double Min = chart.Series[i].Points[0].Values[0];
            double Max = chart.Series[i].Points[0].Values[0];
            for (int j = 1; j < chart.Series[i].Points.Count; j++)
            {
                double Value = chart.Series[i].Points[j].Values[0];
                if (Value < Min)
                    Min = Value;
                if (Value > Max)
                    Max = Value;
            }
            XYDiagram RealDiag = (XYDiagram)chart.Diagram;
            if (RealDiag != null)
            {
                RealDiag.SecondaryAxesY[i].WholeRange.MinValue = Min - 1;
                RealDiag.SecondaryAxesY[i].WholeRange.MaxValue = Max + 1;
            }
        }
    }
}
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
DevExpress ChartControl 是一个功能强大的图表控件,可用于在应用程序创建各种类型的曲线图。 使用DevExpress ChartControl,我们可以轻松地添加和配置曲线图,以直观地显示数据和趋势。曲线图可以用于展示时间序列数据、趋势分析、模式识别等。 在使用DevExpress ChartControl时,我们可以通过以下几个步骤来创建和配置曲线图: 1. 数据绑定:首先,我们需要将数据源与ChartControl绑定。可以使用多种数据源,如数据库、集合、XML等。通过设置数据系列的名称、标签、数据字段等,我们可以将数据源的数据与图表关联起来。 2. 图表类型选择:ChartControl提供了多种类型的曲线图,如折线图、散点图、面积图等。我们可以根据需求选择合适的图表类型,并进行相关的配置。 3. 样式设置:可以根据需要,配置曲线图的外观样式,如背景颜色、图表边框、曲线颜色、标签样式等。通过设置图例,我们可以显示曲线的数据系列名称和相应的颜色。 4. 标题和轴设置:我们可以自定义曲线图的标题,为X轴和Y轴添加标签和标题,调整刻度范围、刻度间隔等。可以根据需要,显示或隐藏网格线、刻度线等。 5. 功能和交互性:ChartControl支持各种功能和交互性,如数据筛选、缩放、滚动、鼠标提示、图表导出等。我们可以根据需求,启用或禁用这些功能。 使用DevExpress ChartControl,我们可以轻松地创建出具有丰富功能和精美外观的曲线图。无论是在桌面应用程序还是Web应用程序DevExpress ChartControl都是一个强大的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值