MSChart 的常用属性、事件、数据源绑定

  1. 最常用的属性包括
    1. ChartAreas:增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,用于多个图表类型在一个绘图区不兼容时。
      1. AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。
      2. AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。
      3. AlignWithChartArea:参照对齐的绘图区名称。
      4. InnerPlotPosition:图表在绘图区内的位置属性。
        1. Auto:是否自动对齐。
        2. Height:图表在绘图区内的高度(百分比,取值在0-100 )
        3. Width:图表在绘图区内的宽度(百分比,取值在0-100 )
        4. X,Y:图表在绘图区内左上角坐标
      5. Position:绘图区位置属性,同InnerPlotPosition。
      6. Name:绘图区名称。
      7. Axis:坐标轴集合
        1. Title:坐标轴标题
        2. TitleAlignment:坐标轴标题对齐方式
        3. Interval:轴刻度间隔大小
        4. IntervalOffset:轴刻度偏移量大小
        5. MinorGrid:次要辅助线
        6. MinorTickMark:次要刻度线
        7. MajorGrid:主要辅助线
        8. MajorTickMark:主要刻度线
    2. DataSourceID:MSChart的数据源。
    3. Legends:图例说明。
    4. Palette:图表外观定义。
    5. Series:最重要的属性,图表集合,就是最终看到的饼图、柱状图、线图、点图等构成的集合;可以将多种相互兼容的类型放在一个绘图区域内,形成复合图。
      1. IsValueShownAsLabel:是否显示数据点标签,如果为true,在图表中显示每一个数据值
      2. Label:数据点标签文本
      3. LabelFormat:数据点标签文本格式
      4. LabelAngle:标签字体角度
      5. Name:图表名称
      6. Points:数据点集合
      7. XValueType:横坐标轴类型
      8. YValueType:纵坐标轴类型
      9. XValueMember:横坐标绑定的数据源(如果数据源为Table,则填写横坐标要显示的字段名称 )
      10. YValueMembers:纵坐标绑定的数据源(如果数据源为Table,则填写纵坐标要显示的字段名称,纵坐标可以有两个 )
      11. ChartArea:图表所属的绘图区域名称
      12. ChartType:图表类型(柱形、饼形、线形、点形等)
      13. Legend:图表使用的图例名称
    6. Titles:标题集合。
    7. width:MSChart的宽度。
    8. height:MSChart的高度。
  2. 常用事件:
    1. Series1.Points.DataBind() 
      绑定数据点集合,如果要在一个MSChart控件的一个绘图区(ChartArea)内添加多个不同数据源的图表,就用这个主动绑定数据集合的方法。可以将表中指定字段的值绑定到指定的坐标轴上。
    2. MSChart1.DataBind() 
      给整个MSChart绑定一个数据源,该MSChart中的图表全部可以使用该数据源作为统计来源。

下面给一个自己做的例子:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace MSChart
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int[] date = new int[] { 20, 40, 50, 80, 30, 10, 60 };
            int[] test = new int[] { 10, 80, 70, 40, 20, 50, 90 };
            Chart1.Width = 600; //图片宽度
            Chart1.Height = 400; //图片高度
            Chart1.BackColor = Color.Azure; //图片背景色
            //建一个图表集合
            Series series = new Series("test");
            series.ChartType = SeriesChartType.Column; //图标集类型,Line 为直线,SpLine为曲线
            series.Color = Color.Green; //线条颜色
            series.BorderWidth = 2; //线条宽度
            series.ShadowOffset = 1; //阴影宽度
            series.IsVisibleInLegend = false; //是否显示数据说明
            series.IsValueShownAsLabel = true;
            series.MarkerStyle = MarkerStyle.Diamond; //线条上的数据点标志类型
            series.MarkerSize = 8; // 标志的大小
            DateTime date1 = DateTime.Now.Date;
            for (int i = 0; i < date.Length; i++)
            {
                series.Points.AddXY(date1, date[i]);
                date1 = date1.AddDays(1);
            }
            Chart1.Series.Add(series); //把数据集添加到Chart1 中
            //再建一个图表集合
            Series series1 = new Series("ok");
            series1.ChartType = SeriesChartType.Column; //图标集类型,Line 为直线,SpLine为曲线
            series1.Color = Color.Red; //线条颜色
            series1.BorderWidth = 2; //线条宽度
            series1.ShadowOffset = 1; //阴影宽度
            series1.IsVisibleInLegend = false; //是否显示数据说明
            series1.IsValueShownAsLabel = true;
            series1.MarkerStyle = MarkerStyle.Diamond;
            series1.MarkerSize = 8;
            DateTime date2 = DateTime.Now.Date;
            for (int i = 0; i < test.Length; i++)
            {
                series1.Points.AddXY(date2, test[i]);
                date2 = date2.AddDays(1);
            }
            Chart1.Series.Add(series1); //把数据集添加到Chart1 中
            //设置坐标轴
            Chart1.ChartAreas[0].AxisX.LineColor = Color.Blue;
            Chart1.ChartAreas[0].AxisY.LineColor = Color.Blue;
            Chart1.ChartAreas[0].AxisX.LineWidth = 2;
            Chart1.ChartAreas[0].AxisY.LineWidth = 2;
            Chart1.ChartAreas[0].AxisY.Title = "总额";
            //设置网格线
            Chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Blue;
            Chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Blue;
        }
    }
}
最后显示的图片:

MSChart 的常用属性、事件、数据源绑定_第1张图片
数据源绑定(一)

            string fileName = "C:\\chartdata.mdb";
            Chart1.Width = 600; //图表宽度
            Chart1.Height = 400; //图表高度
            Chart1.BackColor = Color.Azure; //图表背景色
            Chart1.Titles.Add("房地产"); //图表标题
            //新建连接
            using (OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileName))
            {
                OleDbCommand cmd = new OleDbCommand("SELECT Name, Sales FROM REPS", con);
                con.Open();
                OleDbDataReader read = cmd.ExecuteReader();
                Chart1.DataBindTable(read, "Name");
                read.Close();
            }
            //注意数据绑定后,它的series 是1 而不是0
            Chart1.Series[1].IsValueShownAsLabel = true; //是否显示数据
            Chart1.Series[1].IsVisibleInLegend = false; //是否显示数据说明
            Chart1.Series[1].MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
            Chart1.Series[1].MarkerSize = 8; //标志大小
            Chart1.ChartAreas[0].AxisX.LineColor = Color.Blue; //X 轴颜色
            Chart1.ChartAreas[0].AxisY.LineColor = Color.Blue; //Y 轴颜色
            Chart1.ChartAreas[0].AxisX.LineWidth = 2; //X轴宽度
            Chart1.ChartAreas[0].AxisY.LineWidth = 2; //Y 轴宽度
            Chart1.ChartAreas[0].AxisY.Title = "价格"; //Y 轴标题
数据源绑定方式(二)

            string fileName = "C:\\chartdata.mdb";
            Chart1.Width = 600; //图表宽度
            Chart1.Height = 400; //图表高度
            Chart1.BackColor = Color.Azure; //图表背景色
            Chart1.Titles.Add("房地产"); //图表标题
            //新建连接
            using (OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileName))
            {
                OleDbCommand cmd = new OleDbCommand("SELECT Name, Sales FROM REPS", con);
                con.Open();
                Chart1.DataSource = cmd;
                Chart1.Series[0].XValueMember = "Name";
                Chart1.Series[0].YValueMembers = "Sales";
                con.Close();
                Chart1.DataBind();
            }
数据源绑定(三)

            string fileName = "C:\\chartdata.mdb";
            Chart1.Width = 600; //图表宽度
            Chart1.Height = 400; //图表高度
            Chart1.BackColor = Color.Azure; //图表背景色
            Chart1.Titles.Add("房地产"); //图表标题
            //新建连接
            using (OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileName))
            {
                OleDbCommand cmd = new OleDbCommand("SELECT GrossSales FROM SALES WHEREQuarterEnding < #01/01/2002#", con);
                con.Open();
                OleDbDataReader read = cmd.ExecuteReader();
                Chart1.Series[0].Points.DataBindY(read, "GrossSales");
                read.Close();
            }
数据源绑定(四)

            string fileName = "C:\\chartdata.mdb";
            Chart1.Width = 600; //图表宽度
            Chart1.Height = 400; //图表高度
            Chart1.BackColor = Color.Azure; //图表背景色
            Chart1.Titles.Add("房地产"); //图表标题
            //新建连接
            using (OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" + fileName))
            {
                OleDbCommand cmd = new OleDbCommand("SELECT * FROM REPSALES", con);
                con.Open();
                OleDbDataReader read = cmd.ExecuteReader();
                Chart1.DataBindCrossTable(read,
                "Name",
                "Year",
                "Sales",
                "Label=Commissions{C}");
                read.Close();
            }
数据源绑定(五)

            // Align series using their X axis labels
            Chart1.AlignDataPointsByAxisLabel();
            Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; //展示3D
            // Initialize arrays for series 1
            double[] yval1 = { 2, 6, 5 };
            string[] xval1 = { "Peter", "Andrew", "Julie" };
            // Initialize arrays for series 2
            double[] yval2 = { 4, 5, 3 };
            string[] xval2 = { "Peter", "Andrew", "Dave" };
            // Initialize arrays for series 3
            double[] yval3 = { 6, 5 };
            string[] xval3 = { "Julie", "Mary" };
            // Bind the arrays to each data series
            Chart1.Series["Series1"].Points.DataBindXY(xval1, yval1);
            Chart1.Series["Series2"].Points.DataBindXY(xval2, yval2);
            Chart1.Series["Series3"].Points.DataBindXY(xval3, yval3);
            // Align series using their X axis labels
            Chart1.AlignDataPointsByAxisLabel();
            Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; //展示3D





你可能感兴趣的:(C#)