C# Chart图表应用

news2024/9/19 10:55:15

1,Chart简介

        Chart控件是微软自带的一种图形可视化组件,使用简单灵活。在.NET4.0之后(即VS2010之后)已集成在了VS里面,直接拖拽控件到窗体即可使用。
需要使用命名空间:using System.Windows.Forms.DataVisualization.Charting(拖拽控件时自动添加)。

        一个 Chart 可绘制多个 ChartArea,每个 ChartArea 可绘制多条 Series。ChartArea 是绘图区域,一个Chart可以由多个 ChartArea 叠加而成,Series 是画在 ChartAarea 上的图形(例如折线图中的折线),Series 英文意思是“序列、连续”,其实就是数据线,它可以是曲线、点、柱形、条形、饼图...。

        当 Chart 当数据非常多的时候可以通过鼠标选择查看区域,进一步拖拽横纵向滚动条来缩小曲线图查看,关联属性是Chart.ChartArea.Axes.XAxis.ScaleView中的

1.1分布图。

1.2,多个ChartArea,多个Series 的Chart示例

Chart中有单个ChartArea,每个ChartArea有1个Series:

Chart中有单个ChartArea,每个ChartArea有多个Series:

Chart中有多个ChartArea,每个ChartArea有1个Series:

Chart中有多个ChartArea,每个ChartArea有多个Series:

2,属性介绍。

2.1,ChartAreas:获取用于存储 ChartArea 对象的只读 ChartAreaCollection 对象。 

Chart1.ChartAreas[“ChartArea1”].Name = “图表区域”;

//设置是否自动设置合适的图表元素
    Chart1.ChartAreas[“图表区域”].Position.Auto = true;

//设置图表的阴影颜色
    Chart1.ChartAreas[“图表区域”].ShadowColor = System.Drawing.Color.YellowGreen;

//设置图表元素左上角对应的X坐标
    Chart1.ChartAreas[“图表区域”].Position.X=5.089137F;

//设置图表元素左上角对应的Y坐标
    Chart1.ChartAreas[“图表区域”].Position.Y = 5.895753F;

//设置图表元素的高度
    Chart1.ChartAreas[“图表区域”].Position.Height = 86.76062F;

//设置图表元素的宽度
    Chart1.ChartAreas[“图表区域”].Position.Width = 88F;

//设置是否在内部绘图区域中自动设置合适的图表元素
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Auto = false;

//设置图表元素内部绘图区域的高度
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Height = 85F;

//设置图表元素内部绘图区域的宽度
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Width = 86F;

//设置图表元素内部绘图区域左上角对应的X坐标
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.X = 8.3969F;

//设置图表元素内部绘图区域左上角对应的Y坐标
    Chart1.ChartAreas[“图表区域”].InnerPlotPosition.Y = 3.63068F;

//设置三维图表的旋转角度
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Inclination = 10;

//设置条形图或柱形图的的数据系列是否为簇状
    Chart1.ChartAreas[“图表区域”].Area3DStyle.IsClustered = true;

//设置图表区域是否使用等角投影显示
    Chart1.ChartAreas[“图表区域”].Area3DStyle.IsRightAngleAxes = true;

//设置图表的照明类型(色调随旋转角度改变而改变,不应用照明,色调不改变)
    Chart1.ChartAreas[“图表区域”].Area3DStyle.LightStyle ==System.Web.UI.DataVisualization.Charting.LightStyle.Realistic;

//设置三维图区的透视百分比
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Perspective = 50;

//设置三维图表区域绕垂直轴旋转的角度
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Rotation = 60;

//设置三维图区中显示的墙的宽度
    Chart1.ChartAreas[“图表区域”].Area3DStyle.WallWidth = 0;

//设置是否显示3D效果
    Chart1.ChartAreas[“图表区域”].Area3DStyle.Enable3D = true;

//设置图表区域的背景颜色
    Chart1.ChartAreas[“图表区域”].BackColor = System.Drawing.Color.Green;

//指定图表元素的渐变样式(中心向外,从左到右,从上到下等等)
    Chart1.ChartAreas[“图表区域”].BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.LeftRight;

//设置图表区域的辅助颜色
    Chart1.ChartAreas[“图表区域”].BackSecondaryColor = System.Drawing.Color.White;

//设置图表区域边框颜色
    Chart1.ChartAreas[“图表区域”].BorderColor = System.Drawing.Color.White;

//设置图像边框线的样式(实线、虚线、点线)
    Chart1.ChartAreas[“图表区域”].BorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;

//设置X轴下方的提示信息的字体属性
    Chart1.ChartAreas[“图表区域”].AxisX.LabelStyle.Font = new System.Drawing.Font(“Trebuchet MS”, 8.25F, System.Drawing.FontStyle.Bold);

//设置标签文本中的格式字符串
    Chart1.ChartAreas[“图表区域”].AxisX.LabelStyle.Format = “”;

//设置标签间隔的大小
    Chart1.ChartAreas[“图表区域”].AxisX.LabelStyle.Interval=5D;

//设置间隔大小的度量单位
    Chart1.ChartAreas[“图表区域”].AxisX.LabelStyle.IntervalType = System.Web.UI.DataVisualization.Charting.DateTimeIntervalType.Number;

//设置X轴的线条颜色
    Chart1.ChartAreas[“图表区域”].AxisX.LineColor = System.Drawing.Color.White;

//设置主网格线与次要网格线的间隔
    Chart1.ChartAreas[“图表区域”].AxisX.MajorGrid.Interval=5D;

//设置主网格线与次网格线的间隔的度量单位
    Chart1.ChartAreas[“图表区域”].AxisX.MajorGrid.IntervalType = System.Web.UI.DataVisualization.Charting.DateTimeIntervalType.Number;

//设置网格线的颜色
    Chart1.ChartAreas[“图表区域”].AxisX.MajorGrid.LineColor = System.Drawing.Color.Snow;

//设置刻度线的间隔
    Chart1.ChartAreas[“图表区域”].AxisX.MajorTickMark.Interval = 5D;

//设置刻度线的间隔的度量单位
    Chart1.ChartAreas[“图表区域”].AxisX.MajorTickMark.IntervalType = System.Web.UI.DataVisualization.Charting.DateTimeIntervalType.Number;

//设置是否自动调整轴标签
    Chart1.ChartAreas[“图表区域”].AxisY.IsLabelAutoFit = false;

//设置是否自动将数据值均为正值时轴的最小值设置为0,存在负数据值时,将使用数据轴最小值
    Chart1.ChartAreas[“图表区域”].AxisY.IsStartedFromZero = false;

//设置Y轴左侧的提示信息的字体属性
    Chart1.ChartAreas[“图表区域”].AxisY.LabelStyle.Font = new System.Drawing.Font(“Trebuchet MS”, 8.25F, System.Drawing.FontStyle.Bold);

//设置轴的线条颜色
    Chart1.ChartAreas[“图表区域”].AxisY.LineColor = System.Drawing.Color.DarkBlue;

//设置网格线颜色
    Chart1.ChartAreas[“图表区域”].AxisY.MajorGrid.LineColor = System.Drawing.Color.White;

//设置Y轴最大值
    Chart1.ChartAreas[“图表区域”].AxisY.Maximum = getmax() + 100;

//设置Y轴最小值
    Chart1.ChartAreas[“图表区域”].AxisY.Minimum=0;

//轴数据视图,查看位置
    Chart1.ChartAreas[“图表区域”].AxisX.ScaleView.Position=1;

//轴数据视图,查看大小(决定图表中显示X轴坐标数量)
    Chart1.ChartAreas[“图表区域”].AxisX.ScaleView.Size=4;

//轴滚动条设置
    Chart1.ChartAreas[“图表区域”].AxisX.ScrollBar;

 2.2,Series:获取 SeriesCollection 对象。 

  • SeriesCollection 类:表示 Series 对象的集合。
    • Count:获取 Collection<T> 中实际包含的元素数。
    • Item[Int32]:获取或设置指定索引处的元素。
    • Item[String]:获取或设置具有指定名称的图表元素。
  • Series 类:存储数据点和序列特性。
    • ChartType:获取或设置序列的图表类型。
      • SeriesChartType 枚举:指定 Series 的图表类型。
        • Area:面积图类型。
        • Line:折线图类型。
        • Spline:样条图类型。(光滑曲线)
        • Column:柱形图类型。
        • Pie:饼图类型。
        • Doughnut:圆环图类型。
    • XValueType:获取或设置沿 X 轴绘制的值类型。
    • YValueType:获取或设置序列所存储的数据点中的 Y 值数据类型。
      • ChartValueType 枚举:指定各种图表属性的值类型。
        • Auto:属性类型由图表控件自动设置。
        • Int32:Int32 值。
        • DateTime:一个 DateTime 值。
        • Time:[DateTime] 值的时间部分。
    • IsValueShownAsLabel:获取或设置一个标志,该标志指示是否在标签上显示数据点的值。
    • Points:获取 DataPointCollection 对象。(数据表中的数据点)
      • DataPointCollection 类:表示 DataPoint 对象的集合。
        • Count:获取 Collection<T> 中实际包含的元素数。
        • Item:获取或设置指定索引处的元素。(针对每一个 DataPoint 对象)
        • AddXY(Double, Double):使用指定的 X 值和 Y 值将 DataPoint 对象添加到集合末尾。
        •   AddY(Double):使用指定的 Y 值将 DataPoint 对象添加到集合末尾。
        • //实现  将时间数据赋值到 X 轴///
          //第一步:将 X 轴数值类型设置为 Time
          chart1.Series[0].XValueType = ChartValueType.Time;
           
          //第二步:将 DateTime 数据转为 double 类型
          DateTime dt = DateTime.Parse("2020/8/8  15:18:01");
          double d = Double.Parse(dtzh.Rows[i]["Fo"].ToString());
          chart1.Series[0].Points.AddXY(dt.ToOADate(), d);
  • DataPoint 类:表示存储在 DataPointCollection 类中的数据点。
    • XValue:获取或设置数据点的 X 值。
    • YValues:获取或设置数据点的 Y 值。(数组的形式,值一般是[0])
    • Color:获取或设置数据点的颜色。
    • BorderColor:获取或设置数据点的边框颜色。
  • Clear:从 Collection<T> 中移除所有元素。
  • Insert:将元素插入 Collection<T> 的指定索引处。
  • InsertXY:插入具有指定 X 值和一个或多个指定 Y 值的数据点。
  • InsertY:插入具有一个或多个指定 Y 值的数据点。
  • Remove:从 Collection<T> 中移除特定对象的第一个匹配项。
  • RemoveAt:移除 Collection<T> 的指定索引处的元素。
  • MarkerStyle:获取或设置标记样式。
    • MarkerStyle 枚举:获取或设置标记样式。
      • MarkerStyle 枚举:指定标记的样式。
      • None:不为序列或数据点显示任何标记。
      • Square:显示正方形标记。
      • Circle:显示圆形标记。
      • Diamond:显示菱形标记。
      • Triangle:显示三角形标记。
      • Cross:显示十字形标记。
  • MarkerColor:获取或设置标记颜色。(数据点)
  • MarkerSize:获取或设置标记的大小。
  • MarkerBorderColor:获取或设置标记的边框颜色。
  • MarkerBorderWidth:获取或设置标记的边框宽度。
     
  • Color:获取或设置数据点的颜色。(数据点和连接的线)
  • BorderWidth:获取或设置数据点的边框宽度。
  • BorderDashStyle:获取或设置数据点的边框样式。
  • BorderColor:获取或设置数据点的边框颜色。
  • EmptyPointStyle:获取或设置标记为空的点的绘制样式。
     
  • LabelBackColor:获取或设置数据点标签的背景色。
  • LabelBorderColor:获取或设置数据点标签的边框颜色。
  • LabelBorderDashStyle:获取或设置标签的边框样式。
  • LabelBorderWidth:获取或设置标签的边框宽度。
     
  • IsVisibleInLegend:获取或设置一个标志,该标志指示是否在图例中显示项。
  • LegendText:获取或设置图例中项的文本。
//X轴的数据源
 Chart1.Series[“Series1”].XValueMember = “name”;

//Y轴的数据源
 Chart1.Series[“Series1”].YValueMembers = “mobile”;

//设置颜色
 Chart1.Series[“Series1”].Color = System.Drawing.Color.Red;

//图表类型
Chart1.Series[“Series2”].ChartType=System.Web.UI.DataVisualization.Charting.SeriesChartType.Line;

//是否在Chart中显示坐标点值
Chart1.Series[“Series1”].IsValueShownAsLabel = true;

//数据边框颜色
Chart1.Series[“Series1”].BorderColor = System.Drawing.Color.Red;

// 图表背景颜色
Chart1.BackColor = System.Drawing.Color.Red;

//数据颜色
Chart1.Series[“Series1”].Color = System.Drawing.Color.Black;

//数据名称
Chart1.Series[“Series1”].Name = “数据1”;

//阴影偏移量
Chart1.Series[“数据1”].ShadowOffset = 1;

//阴影颜色:
Chart1.Series[“数据1”].ShadowColor = System.Drawing.Color.PaleGreen;

 2.3,Titles:存储 Chart 控件使用的所有 Title 对象。 

  • TitleCollection 类:表示 Title 对象的集合。
    • Count:获取 Collection<T> 中实际包含的元素数。
    • Item[Int32]:获取或设置指定索引处的元素。
    • Add(T):将对象添加到 Collection<T> 的结尾处。
    • Add(String):将具有指定名称的 Title 对象添加到集合的末尾。
    • Clear:从 Collection<T> 中移除所有元素。
    • ClearItems:从 Collection<T> 中移除所有元素。
  • Title 类:表示整个图表图像的标题。
    • Alignment:获取或设置标题的对齐方式。
    • BackColor:获取或设置标题的背景色。
    • Font:获取或设置标题的字体。
    • ForeColor:获取或设置标题文本的颜色。
    • ShadowColor:获取或设置标题的阴影颜色。
    • ShadowOffset:获取或设置标题的阴影偏移量(以像素为单位)。
    • Position:获取或设置可用于获取或设置标题位置的 ElementPosition 对象。
    • Text:获取或设置标题的文本。
    • TextOrientation:获取或设置标题中文本的方向。
    • TextStyle:获取或设置标题的文本样式。

 2.4,Legends:存储 Chart 控件使用的所有 Legend 对象。 

  • LegendCollection 类:表示 Legend 对象的集合。
    • Count:获取 Collection<T> 中实际包含的元素数。
    • Item[Int32]:获取或设置指定索引处的元素。
    • Item[String]:获取或设置具有指定名称的图表元素。
  • Legend 类:表示图表图像的图例。
    • Alignment:获取或设置图例的对齐方式。
      • StringAlignment 枚举:指定文本字符串相对于其布局矩形的对齐方式。
        • Near:如果图例停靠到顶部或底部,则 Near 位于左侧;如果图例停靠到左侧或右侧,则 Near 位于顶部。
        • Center:总是将图例垂直或水平居中。
        • Far:如果图例停靠到顶部或底部,则 Far 位于右侧;如果图例停靠到左侧或右侧,则 Far 位于底部。
    • Title:获取或设置图例标题的文本。
    • ShadowColor:获取或设置图例的阴影颜色。
    • ShadowOffset:获取或设置图例的阴影偏移量(以像素为单位)。
// 图表的对齐方式(中间对齐,靠近原点对齐,远离原点对齐)
legend1.Alignment = System.Drawing.StringAlignment.Near;

//图例的背景颜色
legend1.BackColor = System.Drawing.Color.Black;

//图例要停靠在哪个区域上
legend1.DockedToChartArea = “ChartArea1”;//设置图例要停靠在哪个区域上

//停靠在图表区域的位置(底部、顶部、左侧、右侧)
legend1.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Bottom;

//图例的字体属性
legend1.Font =new System.Drawing.Font(“Trebuchet MS”, 8.25F, System.Drawing.FontStyle.Bold);

//图例文本是否可以自动调节大小
legend1.IsTextAutoFit = true;

//图例项方式(多列一行、一列多行、多列多行)
legend1.LegendStyle = System.Windows.Forms.DataVisualization.Charting.LegendStyle.Column;

//图例的名称
legend1.Name = “l1”;
Chart1.Legends.Add(legend1.Name);

2.5,Chart外观属性

//Chart渐变样式
Chart1.BackGradientStyle=System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;

//Chart背景色
Chart1.BackColor = System.Drawing.Color.Yellow;

//Chart背景辅助颜色
Chart1.BackSecondaryColor = System.Drawing.Color.Yellow;

//Chart图像边框颜色
Chart1.BorderlineColor = System.Drawing.Color.Yellow;

//Chart边框线样式
Chart1.BorderlineDashStyle=System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;

//Chart边框宽度
Chart1.BorderlineWidth = 3;

//Chart边框外观样式:
Chart1.BorderSkin.SkinStyle=System.Windows.Forms.DataVisualization.Charting.BorderSkinStyle.Emboss;

2.6,图形显示区域。

3,应用。

3.1, 通过代码设置属性。

1. 在工具箱中找到 Chart 控件并使用

ChartArea1属性设置///
//设置网格的样式
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.LightGray;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = Color.LightGray;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.IntervalOffset = 1;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.IntervalOffset = 0;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 2;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Interval = 10;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.DashDot;
//设置坐标轴样式
chart1.ChartAreas["ChartArea1"].AxisX.Title = "随机数";
chart1.ChartAreas["ChartArea1"].AxisY.Title = "数值";
chart1.ChartAreas[0].AxisX.ArrowStyle = AxisArrowStyle.Lines;
chart1.ChartAreas[0].AxisY.IntervalOffset = 10;
chart1.ChartAreas[0].AxisY.Interval = 20;
chart1.ChartAreas[0].AxisY.Minimum = -10;
//启用3D显示
chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false;
//设置图表背景
chart1.ChartAreas[0].BackColor = Color.FromArgb(0x87, 0xCC, 0xFF, 0xFF);
chart1.ChartAreas[0].BackGradientStyle = GradientStyle.TopBottom;
chart1.ChartAreas[0].ShadowColor = Color.Gainsboro;
chart1.ChartAreas[0].ShadowOffset = 5;
 
//Series属性设置///
//设置显示类型-线型
chart1.Series["随机数"].ChartType = SeriesChartType.Spline;
//设置坐标轴Value显示类型
chart1.Series["随机数"].XValueType = ChartValueType.Int32;
//是否显示标签的数值
chart1.Series["随机数"].IsValueShownAsLabel = true;
//设置标记图案
chart1.Series["随机数"].MarkerStyle = MarkerStyle.Circle;
chart1.Series["随机数"].MarkerSize = 8;
chart1.Series["随机数"].MarkerColor = Color.FromArgb(0x99, 0xFF, 0x00);
chart1.Series["随机数"].MarkerBorderColor = Color.Green;
chart1.Series["随机数"].MarkerBorderWidth = 2;
//设置图案颜色
chart1.Series["随机数"].Color = Color.Green;
//设置图案的宽度
chart1.Series["随机数"].BorderWidth = 2;
chart1.Series[0].BorderDashStyle = ChartDashStyle.Dash;
chart1.Series[0].BorderColor = Color.Red;
chart1.Series[0].LabelAngle = 45;
chart1.Series[0].LabelBackColor = Color.Aqua;
chart1.Series[0].LabelBorderColor = Color.Black;
 
//添加随机数
Random rd = new Random();
for (int i = 1; i < 20; i++)
{
    //chart1.Series["随机数"].Points.AddXY(i, rd.Next(100));
    chart1.Series["随机数"].Points.AddY(rd.Next(100));
}
 
for (int i = 0; i < chart1.Series[0].Points.Count; i++)
{
    if (chart1.Series[0].Points[i].YValues[0] >= 67.0)
        chart1.Series[0].Points[i].MarkerBorderColor = Color.DeepPink;
    else if(chart1.Series[0].Points[i].YValues[0] >= 33.3)
        chart1.Series[0].Points[i].MarkerBorderColor = Color.DarkOrange;
    else
        chart1.Series[0].Points[i].MarkerBorderColor = Color.Gray;
}

3.2,实例应用。

 class SuperChart
    {
        Chart curChart;
        public SuperChart(Chart chart)
        {
            curChart = chart;
            //设置Y轴网格不可见
            curChart.ChartAreas["ChartArea1"].Axes[1].MajorGrid.Enabled = false;
            //设置X轴网格不可见
            curChart.ChartAreas["ChartArea1"].Axes[0].MajorGrid.Enabled = false;
        }
        public void ShowChart(SeriesChartType chartype, List<ChartData> datas)
        {
            //清除所有的图表序列
            curChart.Series.Clear();
            //创建一个图表序列(一个图表中可以创建多个图表序列)
            Series series01 = new Series();
            series01.Name = "Chart";
            //设置图表序列类型
            series01.ChartType = chartype;
            //将图表序列添加到图表中
            curChart.Series.Add(series01);
            //设置图标序列的列
            for (int i = 0; i < datas.Count; i++)
            {
                double value = datas[i].Value;
                string text = datas[i].Text;
                series01.Points.AddXY(text, value);
                //设置鼠标停留在列上的提示
                series01.LabelToolTip = value.ToString();//停留在标签上时的自动提示
                series01.ToolTip = value.ToString();//停留在列图像上的提示
                //根据不同的Chart类型设置显示格式
                if(chartype== SeriesChartType.Pie)
                {
                    //设置标签显示的格式
                    //格式1:"#AXISLABEL(#VAL)";//设置显示X轴内容+value
                    //格式2:"#AXISLABEL(#PERCENT)"//X轴+百分比
                    //格式3:"#AXISLABEL(#VAL)(#PERCENT)"//X轴+value+百分比
                    series01.Points[i].Label = "#AXISLABEL(#VAL)(#PERCENT)";//设置显示X轴内容+value
                    //标签显示位置:Outside:外侧,Inside:内侧(默认值)
                    series01["PieLabelStyle"] = "Outside";
                    //标签连接线颜色
                    series01["PieLineColor"]="Black";
                }
                else if(chartype== SeriesChartType.Doughnut)
                {
                    series01.Points[i].Label = "#AXISLABEL (#PERCENT)";
                    series01["PieLabelStyle"] = "Inside";
                }
                else
                {
                    series01.Points[i].Label = "(#PERCENT)";
                }
                if(chartype!= SeriesChartType.Pie)
                {
                    series01.Points[i].AxisLabel = $"{text} {value}";
                }
            }
            //设置图标坐标系X和Y的坐标值
            curChart.ChartAreas[0].AxisY.Interval = 10;
            curChart.ChartAreas[0].AxisX.Interval = 1;
        }
    }
   class ChartData
    {
        /// <summary>
        /// 图表文本
        /// </summary>
        public string Text { get; set; }
        public double  Value { get; set; }
    }
  public partial class Form1 : Form
    {
        SuperChart super;
        List<ChartData> list;
        public Form1()
        {
            InitializeComponent();
            super = new SuperChart(chart1);
            Random random = new Random();
            list = new List<ChartData>
            {
                new ChartData { Text="武汉", Value=random.Next(100)  },
                 new ChartData { Text="天津", Value=random.Next(100)  },
                  new ChartData { Text="北京", Value=random.Next(100)  },
                   new ChartData { Text="广州", Value=random.Next(100)  },
                    new ChartData { Text="上海", Value=random.Next(100)  }
            };
        }
        private void btnPie_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.Pie, list);
        }
        private void btnColumn_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.Column, list);
        }
        private void btnLine_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.Line, list);
        }
        private void btnBar_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.Bar, list);
        }
        private void btnDoughnut_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.Doughnut, list);
        }
        private void btnSpline_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.Spline, list);
        }
        private void btnSplineArea_Click(object sender, EventArgs e)
        {
            super.ShowChart(SeriesChartType.SplineArea, list);
        }
    }

3.3,效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1704470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NDIS驱动程序堆栈

NDIS 6.0 引入了暂停和重启驱动程序堆栈的功能。 若要支持 NDIS 6.0 提供的堆栈管理功能&#xff0c;必须重写旧版驱动程序。 NDIS 6.0 还引入了 NDIS Filter驱动程序。 Filter驱动程序可以监视和修改协议驱动程序与微型端口驱动程序之间的交互。 与 NDIS 5 相比&#xff0c;F…

AI智能体研发之路-模型篇(四):一文入门pytorch开发

博客导读&#xff1a; 《AI—工程篇》 AI智能体研发之路-工程篇&#xff08;一&#xff09;&#xff1a;Docker助力AI智能体开发提效 AI智能体研发之路-工程篇&#xff08;二&#xff09;&#xff1a;Dify智能体开发平台一键部署 AI智能体研发之路-工程篇&#xff08;三&am…

Vue中,点击提交按钮,路由多了个问号

问题 当点击提交按钮是路由多了问号&#xff1a; http://localhost:8100/#/ 变为 http://localhost:8100/?#/原因 路由中出现问号通常是由于某些路径或参数处理不当造成的。在该情况下&#xff0c;是因为表单的默认行为导致的。提交表单时&#xff0c;如果没有阻止表单的默…

完全背包洛谷题单

[USACO08NOV] Buying Hay S 题解&#xff1a;这题看到每个都可以卖出无限多个干草包&#xff0c;就应该想到完全背包&#xff0c;但又不同于普通的完全背包&#xff0c;普通的完全背包是让你通过对应的背包求出最大的价值&#xff0c;但是在这题理解上却是知道能够达到背包容量…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

【Linux】升级GCC(版本9.3),补充:binutils

GCC&#xff1a;GNU Compiler Collection 。编译器&#xff0c;几乎Linux中所有程序&#xff08;包括内核&#xff09;都是gcc编译的&#xff0c;包括libc。 gcc不仅仅是编译器&#xff0c;gcc也有很多库&#xff0c;依赖libc。gcc和libc互相依赖。 GCC官网&#xff1a;GCC, …

【B站 heima】小兔鲜Vue3 项目学习笔记Day05

Day05 文章目录 Day05登录1. 整体认识和路由设置2. 表单校验实现3. 表单-统一校验4. 基础登录业务实现5. Pinia管理用户数据6. Pinia 数据持久化7. 登录和非登录状态下的模板适配8. 请求拦截器携带Token9. 退出登录功能的实现10. Token失效401拦截处理 购物车1. 流程梳理2. 本地…

ubuntu下vscode的安装包

1.引言 ubuntu下面安装vscode&#xff0c;编码调用接口时可以跳到接口api的位置&#xff0c;因此在ubuntu下安装vscode还是非常有意义的。 2.下载地址 链接&#xff1a;https://pan.baidu.com/s/1j3XNmvbL574p_hYeBqO6dg?pwdryr7 提取码&#xff1a;ryr7 --来自百度网盘超…

【考研数学】线代除了「李永乐」,还能跟谁?

考研线代&#xff0c;除了利用了老师&#xff0c;我觉得还有一个宝藏老师的课程值得听&#xff01; 那就是喻老&#xff0c;这个是我在b站上面新发现的老师&#xff0c;听完他的课程发现真的喜欢 他不仅在B站上开设了课程&#xff0c;还编写了配套的线性代数辅导讲义&#xff…

网页图片加载慢的求解指南

网页/图片加载慢的求解指南 一、前言与问题描述 今天刚换上华为的HUAWEI AX3 Pro New&#xff0c;连上WIFI后测速虽然比平时慢&#xff0c;但是也不算太离谱&#xff0c;如下图所示&#xff1a; 估计读者们有也和作者一样&#xff0c;还没意识到事情的严重性&#x1f601;。 …

智能客服新突破:大型模型训练助力提升客户服务体验

项目场景&#xff1a;训练大模型智能客服 智能客服新方法在金融服务领域的科技前沿应用 ** 一、 引言 随着科技的飞速发展&#xff0c;智能客服作为金融服务领域的一大创新点&#xff0c;正在逐渐改变传统的客户服务模式。特别是在自然语言处理&#xff08;NLP&#xff09;等…

马斯克:AI时代人人高收入,不需要工作,商品服务不再短缺,可能性80%

当前人工智能现状和未来如何&#xff1f;AI时代下&#xff0c;人类未来会发生哪些变化&#xff1f; 埃隆马斯克&#xff08;Elon Musk&#xff09;在2024 VivaTech大会上分享了关于地球未来的诸多愿景。 投资作业本课代表摘录了其中的要点&#xff0c;分享给大家&#xff1a…

传承的智慧:故事里的人生启示

传承的智慧:故事里的人生启示 在你的书中,通过故事元素来呈现自己的经历、教训和见解。通过情节、角色发展和冲突展示知识和经验,对主人公的影响和变化,以及对读者的启发和教育作用。 一、故事写作的“三种格式” 要创造一个引人入胜的故事,能够吸引读者,同时有效地传达…

STM32高级控制定时器(STM32F103):输入捕获模式

目录 概述 1 输入捕获模式 1.1 原理介绍 1.2 实现步骤 1.3 发生输入捕获流程 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM调制占空比函数 3.2 应用函数库 4 测试 4.1 功能框图 4.2 运行结果 源代码下载地址&#xf…

leetcode 1241每个帖子的评论数(postgresql)

需求 编写 SQL 语句以查找每个帖子的评论数。 结果表应包含帖子的 post_id 和对应的评论数 number_of_comments 并且按 post_id 升序排列。 Submissions 可能包含重复的评论。您应该计算每个帖子的唯一评论数。 Submissions 可能包含重复的帖子。您应该将它们视为一个帖子。…

C++入门3——类与对象(2)

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。可是空类中真的什么都没有吗&#xff1f; 其实并不是的&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a;用户没有显式实现&#xf…

【AN】制作二维机械专业的动画课件,播放、停止、显示和拖拽

下面代码实现了播放、停止、显示结构图&#xff0c;需要配合舞台的美术资源、元件动画来实现 stop(); Bt_play.addEventListener(MouseEvent.CLICK, playmc); function playmc(event:MouseEvent):void {MC_LINE01.play();MC_Jiantou.play();MC_xiexian.play();MC_LINE02.play()…

最新php项目加密源码

压缩包里有多少个php就会被加密多少个PHP、php无需安装任何插件。源码全开源 如果上传的压缩包里有子文件夹&#xff08;子文件夹里的php文件也会被加密&#xff09;&#xff0c;加密后的压缩包需要先修复一下&#xff0c;步骤&#xff1a;打开压缩包 》 工具 》 修复压缩文件…

使用LabVIEW开发RFID读卡器程序

使用LabVIEW开发RFID读卡器程序&#xff0c;涵盖硬件选择、初始化、数据读取与处理的整个流程。通过详细的开发步骤和示例代码&#xff0c;展示LabVIEW在快速开发和调试RFID应用中的优势&#xff0c;使用户能有效实现RFID技术在各类项目中的应用。 工作原理 RFID&#xff08;…

[数据集][目标检测]打架检测数据集VOC格式3146张2类别

数据集格式&#xff1a;Pascal VOC格式(不包含分割的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;3146 标注数量(xml文件个数)&#xff1a;3146 标注类别数&#xff1a;2 标注类别名称:["nofight","fight"] 每个类别…