C#統計圖表


一、先看看效果

 

 

 

 

 二、工具介紹

   1、簡介:圖表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通過它,可讓您的項目及報表,輕松套用各種功能強大的 2D、3D、實時變化的動態圖表;且透過 AJAX,可讓圖表及里面的數據,每秒鍾都持續更新;使用者透過瀏覽器,可和圖表做各種互動設定。

  2、dll下載:System.Windows.Forms.DataVisualization.dll

 

  3、上圖樣例代碼:

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

namespace GCGL
{
    public partial class frmChert : WeifenLuo.WinFormsUI.Docking.DockContent
    {
        private Series dataTable1Series = new Series("2020盈虧表");
        Random rd = new Random();
        public frmChert()
        {
            InitializeComponent();
            
        }
        private void frmChert_Load(object sender, EventArgs e)
        {
            this.TabText = "統計圖表";
            initData();
            initStyle();
        }

        public void initStyle()
        {
            //圖表框架及背景設置
            chart2.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
            chart2.BackSecondaryColor = System.Drawing.Color.White;
            chart2.BorderlineColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(59)))), ((int)(((byte)(105)))));
            chart2.BorderlineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
            chart2.BorderlineWidth = 2;
            chart2.BorderSkin.SkinStyle = System.Windows.Forms.DataVisualization.Charting.BorderSkinStyle.Emboss;
            chart2.BackColor = Color.SteelBlue;
            chart2.Dock = DockStyle.Fill;

            //設置是否在 Chart 中顯示 坐標點值
            dataTable1Series.IsValueShownAsLabel = true;
            dataTable1Series.Color = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(64)))), ((int)(((byte)(10)))));
            dataTable1Series.ShadowOffset = 1;
            dataTable1Series.YValuesPerPoint = 2;

            chart2.ChartAreas[0].AxisY.Maximum = 300.0;//設置Y軸最大值
            chart2.ChartAreas[0].AxisY.Minimum = -100.0; //設置Y軸最小值
            //chart2.Series[0].LegendText = "";//系列名字
            chart2.Series[0].LegendToolTip = "Target Output";//鼠標放到系列上出現的文字 

        }

        public void initData()
        {

            DataTable dataTable1 = new System.Data.DataTable();
            dataTable1.Columns.Add("日期", typeof(Int32));
            dataTable1.Columns.Add("金額", typeof(double));

            for (int i = 0; i < 11; i++)
            {
                dataTable1.Rows.Add((i+1), 1032.0*rd.Next()/10000000000);
            }
                
            chart2.Series.Clear();//清空表中的數據
            //第一個表中的數據
            
            dataTable1Series.Points.DataBind(dataTable1.AsEnumerable(), "日期", "金額", "");
            dataTable1Series.XValueType = ChartValueType.Int32; //設置X軸類型為時間
            dataTable1Series.ChartType = SeriesChartType.Pie;  //設置Y軸為折線
            chart2.Series.Add(dataTable1Series);


        }

       
        
    }
}
View Code

  4、常用屬性

       chart1.Series[0].ChartType = SeriesChartType.Line;//設置曲線類型
 
            chart1.Series[0].XValueType = ChartValueType.DateTime;//設置X軸綁定值的類型
 
            chart1.Series[0].LegendToolTip = "Target Output";//鼠標放到系列上出現的文字 
 
            chart1.Series[0].LegendText = "Target Output";//系列名字 
 
            chart1.ChartAreas[0].AxisX.Minimum = 1;//坐標最小值,這樣的話,X軸坐標是從1開始
 
            chart1.Series[0].IsValueShownAsLabel = true;//值作為標簽顯示在圖表中
 
            chart1.Series[0].BorderWidth = 3;//設置線寬
 
            chart1.ChartAreas[0].AxisX.Interval = 1;//設置X軸間距,這樣的話,就間距固定為1
 
            double max = 120, min = 0;
 
            chart1.ChartAreas[0].AxisY.Maximum = max;//設置Y軸最大值
 
            chart1.ChartAreas[0].AxisY.Minimum = min; //設置Y軸最小值

  5、數據綁定:

 private Series dataTable1Series = new Series("2020盈虧表");
 public void initData()
        {

            DataTable dataTable1 = new System.Data.DataTable();
            dataTable1.Columns.Add("日期", typeof(Int32));
            dataTable1.Columns.Add("金額", typeof(double));

            for (int i = 0; i < 11; i++)
            {
                dataTable1.Rows.Add((i+1), 1032.0*rd.Next()/10000000000);
            }
                
            chart2.Series.Clear();//清空表中的數據
            //第一個表中的數據
            
            dataTable1Series.Points.DataBind(dataTable1.AsEnumerable(), "日期", "金額", "");
            dataTable1Series.XValueType = ChartValueType.Int32; //設置X軸類型為時間
            dataTable1Series.ChartType = SeriesChartType.Pie;  //設置Y軸為折線
            chart2.Series.Add(dataTable1Series);


        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM