DevExpress ChartControl 实现多轴

这段代码用于生成一个包含压力、温度和流量三个指标的曲线图。首先,通过排序确保数据按时间排列,然后创建三个Spline类型的系列分别表示压力、温度和流量,每个系列对应不同的颜色。同时,为第二个和第三个系列创建了独立的Y轴,保持颜色与折线一致。最后,设置了坐标轴的颜色和标题等细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看成图

如果是您需要的效果,请往后看:


            //曲线
            Color[] Colorlist = new Color[7] { Color.FromArgb(255, 79, 129, 189), Color.FromArgb(255, 192, 80, 77), Color.FromArgb(255, 155, 187, 89), Color.FromArgb(255, 128, 100, 162), Color.FromArgb(255, 75, 172, 198), Color.FromArgb(255, 247, 150, 70), Color.FromArgb(255, 253, 63, 238) };  


            pointMlist = pointMlist.OrderBy(a => a.DailyInjDate).ToList();   // pointMlist 为一个List,X轴为时间,所以先按时间排序

            Series Series = new Series("压力", DevExpress.XtraCharts.ViewType.Spline);
            Series.DataSource = pointMlist;
            Series.ArgumentScaleType = ScaleType.Qualitative;
            Series.ArgumentDataMember = "DateFormat";   //以数据源的哪一行为参数  DateFormat:字段名,在list集合中
            Series.ValueScaleType = ScaleType.Numerical; //以数据的形式展示   
            Series.ValueDataMembers.AddRange(new string[] { "DailyPress" });   //需要展示的数据  DailyPress:字段名,在list集合中
            chartCtrlLine.Series.Add(Series);   //添加至chartControl
            Series.View = new DevExpress.XtraCharts.SplineSeriesView() { Color = Colorlist[0] };
            XYDiagram diagram = (XYDiagram)chartCtrlLine.Diagram;
            Color color = Series.View.Color;//设置坐标的颜色和图表线条颜色一致
            diagram.AxisY.Label.TextColor = color;
            diagram.AxisY.Color = color;
            if (((XYDiagram)chartCtrlLine.Diagram).SecondaryAxesY.Count >= 0) { ((XYDiagram)chartCtrlLine.Diagram).SecondaryAxesY.Clear(); }
      

            Series Series1 = new Series("温度", DevExpress.XtraCharts.ViewType.Spline);
            Series1.DataSource = pointMlist;
            Series1.ArgumentScaleType = ScaleType.Qualitative;
            Series1.ArgumentDataMember = "DateFormat";   //以数据源的哪一行为参数
            Series1.ValueScaleType = ScaleType.Numerical; //以数据的形式展示   
            Series1.ValueDataMembers.AddRange(new string[] { "DailyTemperature" });   //需要展示的数据
            chartCtrlLine.Series.Add(Series1);   //添加至chartControl
            Series1.View = new DevExpress.XtraCharts.SplineSeriesView() { Color = Colorlist[1] };
            CreateAxisY(Series1);  创建第二坐标轴

            Series Series2 = new Series("流量", DevExpress.XtraCharts.ViewType.Spline);
            Series2.DataSource = pointMlist;
            Series2.ArgumentScaleType = ScaleType.Qualitative;
            Series2.ArgumentDataMember = "DateFormat";   //以数据源的哪一行为参数
            Series2.ValueScaleType = ScaleType.Numerical; //以数据的形式展示   
            Series2.ValueDataMembers.AddRange(new string[] { "InjDaily" });   //需要展示的数据
            chartCtrlLine.Series.Add(Series2);   //添加至chartControl
            Series2.View = new DevExpress.XtraCharts.SplineSeriesView() { Color = Colorlist[2] };
            CreateAxisY(Series2);创建第二坐标轴

  //多重坐标轴,颜色与折现一致
        private SecondaryAxisY CreateAxisY(Series series)
        {
            SecondaryAxisY myAxis = new SecondaryAxisY(series.Name);
            ((XYDiagram)chartCtrlLine.Diagram).SecondaryAxesY.Add(myAxis);
            ((LineSeriesView)series.View).AxisY = myAxis;
            myAxis.Title.Text = "";  
            myAxis.Title.Alignment = StringAlignment.Far; //顶部对齐
            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;
        }

完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值