2014/12/29

C#.Net 使用Chart 繪製折線圖

先在工具箱找到Chart,拖曳至表單上
並將預設的序列刪除



程式碼:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

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

        private void Form1_Load(object sender, EventArgs e)
        {

            int[,] array = new int[,] {
            {1,8,9,7,105,11,50,999,500,1},
            {12,15,11,18,733,5,4,3,2,500} };


            //標題 最大數值
            Series series1 = new Series("第一條線", 1000);
            Series series2 = new Series("第二條線", 1000);

            //設定線條顏色
            series1.Color = Color.Blue;
            series2.Color = Color.Red;

            //設定字型
            series1.Font = new System.Drawing.Font("新細明體", 14);
            series2.Font = new System.Drawing.Font("標楷體", 12);

            //折線圖
            series1.ChartType = SeriesChartType.Line;
            series2.ChartType = SeriesChartType.Line;

            //將數值顯示在線上
            series1.IsValueShownAsLabel = true;
            series2.IsValueShownAsLabel = true;


            //將數值新增至序列
            for (int index = 0; index < 10; index++)
            {
                series1.Points.AddXY(index, array[0, index]);
                series2.Points.AddXY(index, array[1, index]);
            }

            //將序列新增到圖上
            this.chart1.Series.Add(series1);
            this.chart1.Series.Add(series2);

            //標題
            this.chart1.Titles.Add("標題");
        }
    }
}


執行結果:


參考資料:
http://msdn.microsoft.com/zh-tw/library/vstudio/dd489252(v=vs.100).aspx
http://msdn.microsoft.com/zh-tw/library/vstudio/system.windows.forms.datavisualization.charting(v=vs.100).aspx

10 則留言:

  1. 想請問如果想要讓他接收到數值才繪上chart要怎麼做呢?

    回覆刪除
    回覆
    1. 你可以等待訊號接收到之後再開始調用繪圖的方法

      刪除
  2. 你好, 想請問如收 List 為資料, 是建議在constructor裡接收 及 繪圖 呢? 還是利用form_load function呢?

    回覆刪除
    回覆
    1. 你好
      我會建議在接收時新增病繪圖
      而不會建議在constructor做接收及繪圖
      除非你有其他用途
      因為List本身就可以串列資料

      刪除
  3. 作者已經移除這則留言。

    回覆刪除
  4. 請問有什麼方法可以等我滑鼠一到特定點上時,再做出顯示數值的動作

    回覆刪除
    回覆
    1. 你好
      這篇文章應該是你所要找的解決方法

      http://stackoverflow.com/questions/10648828/see-values-of-chart-points-when-the-mouse-is-on-points

      刪除
  5. 作者已經移除這則留言。

    回覆刪除