首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ZedGraph 教學(二):ModInitialSampleDemo 程式碼解析(上)

     編輯:關於C語言

範例概覽

ModInitialSampleDemo 展示如何建立雙曲線圖表、自訂標題、座標軸、網格、圖例、曲線樣式、填充、符號、背景漸層、文字與箭頭標註。以下提供完整原始碼與關鍵步驟解析。

完整程式碼

using System;
using System.Drawing;
using System.Collections;
using ZedGraph;

namespace ZedGraph.Demo
{
    public class ModInitialSampleDemo : DemoBase
    {
        public ModInitialSampleDemo() : base("Code Project Modified Initial Sample", "Modified Initial Sample", DemoType.Tutorial)
        {
            GraphPane myPane = base.GraphPane;

            // 1. 設定標題與軸標籤
            myPane.Title.Text = "My Test Graph\n(For CodeProject Sample)";
            myPane.XAxis.Title.Text = "My X Axis";
            myPane.YAxis.Title.Text = "My Y Axis";

            // 2. 準備資料點 (正弦函數)
            PointPairList list1 = new PointPairList();
            PointPairList list2 = new PointPairList();
            for (int i = 0; i < 36; i++)
            {
                double x = (double)i + 5;
                double y1 = 1.5 + Math.Sin((double)i * 0.2);
                double y2 = 3.0 * (1.5 + Math.Sin((double)i * 0.2));
                list1.Add(x, y1);
                list2.Add(x, y2);
            }

            // 3. 新增曲線
            LineItem myCurve = myPane.AddCurve("Porsche", list1, Color.Red, SymbolType.Diamond);
            LineItem myCurve2 = myPane.AddCurve("Piper", list2, Color.Blue, SymbolType.Circle);

            // 4. 標題字體顏色
            myPane.Title.FontSpec.FontColor = Color.Green;

            // 5. 網格線
            myPane.XAxis.IsShowGrid = true;
            myPane.YAxis.IsShowGrid = true;
            myPane.XAxis.GridColor = Color.LightGray;
            myPane.YAxis.GridColor = Color.LightGray;

            // 6. 圖例位置
            base.Pane.Legend.Position = ZedGraph.LegendPos.Bottom;

            // 7. 曲線粗細
            myCurve.Line.Width = 2.0F;
            myCurve2.Line.Width = 2.0F;

            // 8. 曲線區域填充 (漸層)
            myCurve.Line.Fill = new Fill(Color.White, Color.Red, 45F);
            myCurve2.Line.Fill = new Fill(Color.White, Color.Blue, 45F);

            // 9. 符號大小與填充
            myCurve.Symbol.Size = 8.0F;
            myCurve2.Symbol.Size = 8.0F;
            myCurve.Symbol.Fill = new Fill(Color.Red);
            myCurve2.Symbol.Fill = new Fill(Color.White);

            // 10. 座標軸背景漸層
            myPane.AxisFill = new Fill(Color.White, Color.FromArgb(255, 255, 210), -45F);

            // 11. 文字標註
            TextItem myText = new TextItem("Interesting\nPoint", 23F, 7F);
            myText.FontSpec.FontColor = Color.Red;
            myText.Location.AlignH = AlignH.Center;
            myText.Location.AlignV = AlignV.Top;
            myPane.GraphItemList.Add(myText);

            // 12. 箭頭標註
            ArrowItem myArrow = new ArrowItem(Color.Red, 12F, 7F, 5F, 20F, 8F);
            myPane.GraphItemList.Add(myArrow);

            // 13. 強制重繪座標軸
            base.ZedGraphControl.AxisChange();
        }
    }
}

關鍵技術點解析

資料點集合:PointPairList

用於儲存 (X, Y) 數值對,支援高效率的大量資料點操作,是 AddCurve 的標準輸入來源。

曲線建立:AddCurve

回傳 LineItem,可事後調整線條、符號、填充等屬性。參數依序為:圖例文字、資料點集合、線條顏色、符號類型。

Fill 類別:漸層填充

Fill(Color c1, Color c2, float angle) 建立雙色線性漸層,angle 為旋轉角度。應用於曲線區域、符號、座標軸背景等。

GraphItemList:自訂繪圖物件容器

可加入 TextItem、ArrowItem、ImageItem 等,實現標註、水印、箭頭等客製化繪圖。

AxisChange()

修改圖表屬性後必須呼叫,以重新計算座標軸範圍與佈局。

執行結果預覽

ModInitialSampleDemo 執行畫面

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved