座標軸 (Chart 控制項)
每個圖表區域都包含座標軸 (Axis 物件) 來代表其繪圖區域,您可以透過圖表區域存取每個座標軸。
圖表是使用 X 和 Y 軸繪製而成。Y 軸通常具有數字標尺,而 X 軸則通常具有類別標尺。類別可包括字串、數字和日期值。根據預設,Chart 控制項的所有座標軸都使用數字標尺。
每個座標軸都可以設定標題。若要設定座標軸標題,請使用 Axis.Title 屬性。
根據座標軸繪圖
最常使用的圖表具有一組「主座標軸」(Primary Axis),而且還可能具有一組「次座標軸」(Secondary Axis)。您可以在 ChartArea 物件中啟用和停用每個座標軸,以及設定 Series 物件使用 Series.XAxisType 和 Series.YAxisType 屬性根據主座標軸或次座標軸進行繪製。請參閱下表,了解哪項屬性控制哪個座標軸。
對大多數圖表類型來說,X 軸是水平軸,而 Y 是垂直軸,但有下列例外狀況:
橫條圖類型的 X 軸是垂直軸,而 Y 軸是水平軸。
圓形圖類型只使用主座標軸,X 軸代表圓形半徑,而 Y 軸代表圓周。
漏斗圖和金字塔圖類型只使用主座標軸,X 軸代表垂直堆疊 (堆疊上的每個項目由一個資料點表示)。Y 軸則根據您的設定,可代表每個項目的區域或高度。
下表顯示每個座標軸一般在圖表區域中的位置。
座標軸 |
位置 |
---|---|
主 X 軸 |
底端 |
主 Y 軸 |
左 |
次 X 軸 |
頂端 |
次 Y 軸 |
右 |
自訂標尺、格線和刻度記號
根據預設,Chart 控制項會根據資料數列,自動設定圖表區域中座標軸的標尺。您可以手動設定每個座標軸的 Minimum、Maximum、Interval、IntervalOffset、IntervalType 和 IntervalOffsetType 屬性。您可以針對座標軸的 MajorGrid、MinorGrid、MajorTickMark、MinorTickMark 和 LabelStyle 屬性定義不同設定,進一步自訂座標軸。如果在座標軸和其中一個元件設定相同屬性 (例如,AxisY 和 AxisY.MajorGrid 中的Minimum 屬性),元件設定將取得優先權。
當 Axis.Interval 設定為 Auto 時,Axis.IntervalAutoMode 屬性會決定應計算多少間隔。如果您的圖表在執行階段經常調整大小或重新繪製,可以將 Axis.IntervalAutoMode 屬性設定為 VariableCount。這樣一來,圖表就會動態計算座標軸間隔。如果圖表間隔會根據資料而以不同的方式顯示,這就很有用。
您也可以將 Axis.IsLogarithmic 屬性設定為 true,以使用對數標尺。
使用交叉點
圖表區域會從「交叉點」(Crossing Point) 繪製資料,交叉點代表 X 軸和 Y 軸交集的值。例如,如果 0 是主 Y 軸的交叉點,在直條圖中,值為 5 的資料點會成為在 Y=0 線以上延伸的直條,而值為 -5 的資料點則會成為在 Y=0 線以下延伸的直條。
根據預設,圖表區域會自動決定交叉點。請使用 Axis.Crossing 屬性來自訂交叉點值。
注意
您在 Axis.Crossing 中指定的值必須介於您在 Axis.Minimum 和 Axis.Maximum 屬性中指定的上限和下限之間。
將交叉點變更為非預設值,可能會導致軸標籤和刻度記號與交叉點一起移入繪圖區域。若要讓軸標籤和刻度記號維持在繪圖區域以外,請將 Axis.IsMarksNextToAxis 屬性設定為 False。
使用刻度分欄
「刻度分欄」(Scale Break) 是在 Y 軸上刻意設定的分隔符號,最常用來重新分配圖表上的資料點。當要繪製之資料的高低值差異甚大時,這有助於改善可讀性。請在 Axis.ScaleBreakStyle 屬性中設定刻度分欄。
使用帶狀線
繪圖區域中的「帶狀線」(Strip Line) 會描繪出個別資料點的外框,或強調繪圖區域中值得注意的區域。若要使用帶狀線,請使用 Axis.IsInterlaced 屬性或 Axis.StripLines 屬性。
如果將 Axis.IsInterlaced 屬性設定為 True,圖表會針對個別座標軸,每隔一個格線間隔繪製帶狀線。如果個別座標軸不使用格線,則會使用座標軸的刻度記號或標籤來決定交錯式帶狀線間隔。您可以使用 Axis.InterlacedColor 屬性設定帶狀線的色彩。
Axis.StripLines 集合屬性 (StripLinesCollection 物件) 會儲存 StripLine 物件。Chart 控制項會根據 Axis.StripLines 中 StripLine 物件的疊置順序 (Z-order) 繪製帶狀線。每個 StripLine 物件會在指定的寬度、間隔和位移重複繪製。若要繪製非重複帶狀線,請將 StripLine.Interval 設定為較大的數字,讓圖表只容納得下一個重複的執行個體。
下列程式碼示範如何使用 Axis.StripLines 屬性,在主 Y 軸的值 20 和 60 之間繪製帶狀線。
chart1.ChartAreas(0).AxisY.StripLines.Add(New StripLine())
chart1.ChartAreas(0).AxisY.StripLines(0).BackColor = Color.FromArgb(80, 252, 180, 65)
chart1.ChartAreas(0).AxisY.StripLines(0).StripWidth = 40
chart1.ChartAreas(0).AxisY.StripLines(0).Interval = 1000
chart1.ChartAreas(0).AxisY.StripLines(0).IntervalOffset = 20
chart1.ChartAreas[0].AxisY.StripLines.Add(new StripLine());
chart1.ChartAreas[0].AxisY.StripLines[0].BackColor = Color.FromArgb(80, 252, 180, 65);
chart1.ChartAreas[0].AxisY.StripLines[0].StripWidth = 40;
chart1.ChartAreas[0].AxisY.StripLines[0].Interval = 10000;
chart1.ChartAreas[0].AxisY.StripLines[0].IntervalOffset = 20;