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();
}
}
}
用於儲存 (X, Y) 數值對,支援高效率的大量資料點操作,是 AddCurve 的標準輸入來源。
回傳 LineItem,可事後調整線條、符號、填充等屬性。參數依序為:圖例文字、資料點集合、線條顏色、符號類型。
Fill(Color c1, Color c2, float angle) 建立雙色線性漸層,angle 為旋轉角度。應用於曲線區域、符號、座標軸背景等。
可加入 TextItem、ArrowItem、ImageItem 等,實現標註、水印、箭頭等客製化繪圖。
修改圖表屬性後必須呼叫,以重新計算座標軸範圍與佈局。
