C#圖表控件ZedGraph使用


最近從java轉到C#下開發PC端的桌面程序,之前也嘗試用java GUI寫桌面程序,發現java寫桌面程序還是諸多不便變,雖然最后也寫出來了,但是決心還是另起平台,有了一定的java基礎,來學習C#還是比較容易的,難點就是各個控件的學習,這個也不是一朝一日就能使用熟練的。今天記錄的主要是模擬數據實現類似動態動態折線的效果:

先來張效果圖片:

使用之前,你需要在解決方案資源管理器里面的“應用”一項右擊,選擇添加引用,找到ZedGraph.dll,如圖:

然后就是使用了,直接放代碼,注釋在代碼里面已經很詳細了:

From1.cs

using System;
using System.Drawing;
using System.Windows.Forms;
using ZedGraph;//引用ZedGraph控件

namespace ChartDynamic
{
    public partial class Form1 : Form
    {
        PointPairList list;//添加數據
        Random ran;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GraphPane mPane = zedGraphControl1.GraphPane;//獲取索引到GraphPane面板上
            ran = new Random();//隨機種子
            mPane.XAxis.Title.Text = "waveLength";//X軸標題
            mPane.YAxis.Title.Text = "A/D";//Y軸標題
            mPane.Title.Text = "NIRS";//標題
            //mPane.XAxis.Scale.MaxAuto = true;
            mPane.XAxis.Type = ZedGraph.AxisType.LinearAsOrdinal;//出現圖表右側出現空白的情況....
            list = new PointPairList();//數據點
            mPane.XAxis.CrossAuto = true;//容許x軸的自動放大或縮小
            for (int i = 0; i < 300; i++)
            {
                int x = i;
                int y = ran.Next(20);
                list.Add(x, y);

            }
            LineItem mCure = mPane.AddCurve("", list, Color.Blue, SymbolType.None);
            zedGraphControl1.AxisChange();//畫到zedGraphControl1控件中,此句必加
        }
        //程序的定時任務,實現界面不斷的刷新,頻率可以在控件的屬性里面設置
        private void timer1_Tick(object sender, EventArgs e)
        {
            list.Clear();//清楚原來數據中的內容
            for (int i = 0; i < 300; i++)
            {
                int x = i;
                int y = ran.Next(20);
                list.Add(x, y);
            }
            zedGraphControl1.AxisChange();
            zedGraphControl1.Refresh();//重新刷新
        }
    }

}

 


免責聲明!

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



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