winform--chart控件实际使用总结

1,想要的效果:让柱状图的标签显示再柱状图的中间

之前的效果:

 代码更改后:

            chart2.Series.Clear();
            //ChartHelper.AddSeries(chart2, "柱状图", SeriesChartType.Column, Color.FromArgb(13, 31, 92), Color.White,false, true);//SeriesChartType.Column类型的无法设置标签值在中间
            ChartHelper.AddSeries(chart2, "柱状图", SeriesChartType.RangeColumn, Color.FromArgb(13, 31, 92), Color.White, false, true);//SeriesChartType.RangeColumn类型,标签值就可以显示在中间
            //ChartHelper.AddSeries(chart2, "目标基准线", SeriesChartType.Line, Color.White, Color.White,true, false);
            ChartHelper.SetTitle(chart2, "柱状图与曲线图", new Font("微软雅黑", 12), Docking.Bottom, Color.White);
            ChartHelper.SetStyle(chart2, Color.Transparent, Color.White);
            ChartHelper.SetLegend(chart2, Docking.Top, StringAlignment.Center, Color.Transparent, Color.White);
            ChartHelper.SetXY(chart2, "序号", "数值", StringAlignment.Far, Color.White, Color.White, AxisArrowStyle.None);

  

更改后的效果:

2,想要的效果:在柱状图上增加一条目标基准线

之前的效果:柱状图遮住了基准线

之前的代码

            chart2.Series.Clear();
            //ChartHelper.AddSeries(chart2, "柱状图", SeriesChartType.Column, Color.FromArgb(13, 31, 92), Color.White,false, true);//SeriesChartType.Column类型的无法设置标签值在中间
            ChartHelper.AddSeries(chart2, "柱状图", SeriesChartType.RangeColumn, Color.FromArgb(13, 31, 92), Color.White, false, true);//SeriesChartType.RangeColumn类型,标签值就可以显示在中间
            //ChartHelper.AddSeries(chart2, "目标基准线", SeriesChartType.Line, Color.White, Color.White,true, false);
            ChartHelper.SetTitle(chart2, "柱状图与曲线图", new Font("微软雅黑", 12), Docking.Bottom, Color.White);
            ChartHelper.SetStyle(chart2, Color.Transparent, Color.White);
            ChartHelper.SetLegend(chart2, Docking.Top, StringAlignment.Center, Color.Transparent, Color.White);
            ChartHelper.SetXY(chart2, "序号", "数值", StringAlignment.Far, Color.White, Color.White, AxisArrowStyle.None);

            #region 为柱状图增加目标基准线,这个方法效果不好
            
            //double max = ammeter.Max();
            double max4 = 45;
            StripLine stripMax4 = new StripLine();
            stripMax4.Text = string.Format("目标:{0:F}", max4); //展示文本
            stripMax4.BackColor = Color.FromArgb(208, 109, 106); //线的背景色

            stripMax4.BorderDashStyle = ChartDashStyle.Dash; //线的边框样式:虚线
            stripMax4.BorderColor = Color.Lime; //线的变框颜色

            stripMax4.Interval = 0; //间隔
            stripMax4.IntervalOffset = max4; //偏移量
            stripMax4.StripWidth = 0.001; //线宽
            stripMax4.ForeColor = Color.White; //前景色
            //stripMax3.TextAlignment = StringAlignment.Near; //文本对齐方式:最前面
            stripMax4.TextAlignment = StringAlignment.Far; //文本对齐方式:最后面
            chart2.ChartAreas[0].AxisY.StripLines.Add(stripMax4); //添加到ChartAreas中

            #endregion

  

更改代码:增加一条曲线对象设置为折线图,每次Y轴固定的值

【1】

【2】

 

更改后的效果:

3,X轴每隔一条才显示的问题

之前的不理想的效果:

 代码更改:

更改后的效果:

4,Y轴坐标不想从0开始

之前的效果

 更改代码:

 更改后的效果:

4,取消X和Y轴的网格显示

更改代码:

更改后的效果:

5,设置图例停靠的位置

效果:让图例显示在最右侧

 更改代码:

 更改后效果:

6,设置X轴坐标不显示

更改前的效果:

 更改代码:

 更改后的效果:

 7,设置X轴坐标的间距均分,而不是以时间的长度来分的

【1】之前的效果

 【2】更改代码

【3】更改后效果:

8,设置Y轴点位超过范围红色提示

【1】效果:

 【2】关键代码;

                        foreach (DataPoint point in this.chart_spc.Series[0].Points)
                        {
                            if (point.YValues[0] > ucl.ToDouble()| point.YValues[0] < lcl.ToDouble())
                            {
                                point.MarkerColor = Color.Red;
                                point.MarkerSize = 10;
                            }
                        }

  

原文地址:https://www.cnblogs.com/baozi789654/p/14534774.html