在早期的專案中,我曾分享過使用 ASP.NET 配合 C# 繪製基本曲線圖的方法。近期重構該功能,新增了資料自動適應與多曲線同步繪製特性,大幅提升圖表的實用性與視覺效果。
新版本會根據輸入資料自動計算邊距、字體大小、X/Y 軸刻度間距,並支援一次繪製多條曲線。以下展示執行結果:

/// <summary>
/// 自動根據參數調整圖像大小與刻度
/// </summary>
public void Fit() {
// 計算字體與邊距間距
intFontSpace = FontSize + 5;
float fltSpace = Math.Min(Width / 6, Height / 6);
XSpace = fltSpace;
YSpace = fltSpace;
// X 軸刻度寬度
XSlice = (Width - 2 * XSpace) / (Keys.Length - 1);
// 尋找資料最小/最大值以決定 Y 軸範圍
float fltMinValue = 0, fltMaxValue = 0;
for (int i = 0; i < Values.Length; i++) {
if (Values[i] < fltMinValue) fltMinValue = Values[i];
else if (Values[i] > fltMaxValue) fltMaxValue = Values[i];
}
if (YSliceBegin > fltMinValue) YSliceBegin = fltMinValue;
// 計算 Y 軸刻度數量與高度
int intYSliceCount = (int)(fltMaxValue / YSliceValue);
if (fltMaxValue % YSliceValue != 0) intYSliceCount++;
YSlice = (Height - 2 * YSpace) / intYSliceCount;
}
此方法動態調整繪圖區域,確保任意範圍的數據都能完整呈現,無需手動設定座標參數。