圖例設(shè)計(jì)
TChart Series類是所有Series類型的共同原型。當(dāng)使用TeeChart在線幫助獲取關(guān)于任何系列類型的幫助時(shí),請(qǐng)遵循位于繼承類型列表中的系列類的鏈接,然后單擊系列成員,其中將包含所有繼承屬性和方法的列表。
加入官方社群740060302,歡迎相互交流
系列類結(jié)構(gòu)
作為對(duì)TeeChart類型庫(kù)結(jié)構(gòu)的一點(diǎn)背景知識(shí),這里是對(duì)Series類和接口的解釋。下圖顯示了TeeChart系列類之間的關(guān)系。所有類都派生自泛型“Series”類,因此共享“Series”屬性和方法。幾個(gè)抽象類派生自系列(Custom3DSeries, CustomBarSeries和CircledSeries),這些是灰色突出顯示的,它們的接口不能直接用于編程,它們的特征由它們的衍生系列類型繼承。所有衍生系列(橙色)都可以在TeeChart畫廊中訪問(wèn),以便包含在您的圖表中。以這種方式派生的TeeChart系列允許通過(guò)公共索引結(jié)構(gòu)對(duì)繼承的屬性和方法進(jìn)行可編程訪問(wèn)(請(qǐng)參閱本節(jié)后面的示例代碼)。
使用TChart編輯器在設(shè)計(jì)時(shí)添加系列更容易,但您也可以在運(yùn)行時(shí)為相同的TChart創(chuàng)建和添加新的和不同的系列類型。
所有AreaSeries屬性和方法都可用于新系列,就像在設(shè)計(jì)時(shí)創(chuàng)建的任何系列一樣。
在同一圖表中混合不同系列類的一個(gè)例子是,在設(shè)計(jì)時(shí)使用TeeChart編輯器向圖表添加區(qū)域(系列(0))、條形(系列(1))和線條(系列(2))系列。所有這些都訪問(wèn)一個(gè)共同的索引結(jié)構(gòu),即圖表的系列列表。要使用該系列,可能如下所示:
[C#]
//Add a series at runtime private void button1_Click(object sender, System.EventArgs e) { Steema.TeeChart.Styles.Area tmpAreaSeries = new Steema.TeeChart.Styles.Area(tChart1.Chart); tmpAreaSeries.FillSampleValues(4); //Or //Steema.TeeChart.Styles.Area tmpAreaSeries = new Steema.TeeChart.Styles.Area(); //tChart1.Series.Add(tmpAreaSeries); //tmpAreaSeries.FillSampleValues(4); }
點(diǎn)擊復(fù)制
[VB.Net]
'Add a series at runtime Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim tmpAreaSeries As New Steema.TeeChart.Styles.Area(TChart1.Chart) tmpAreaSeries.FillSampleValues(4) 'Or 'Dim tmpAreaSeries As New Steema.TeeChart.Styles.Area() 'TChart1.Series.Add(tmpAreaSeries) 'tmpAreaSeries.FillSampleValues(4) End Sub
點(diǎn)擊復(fù)制
選擇串聯(lián)類型
為圖表選擇系列類型在很大程度上取決于您自己對(duì)圖表的要求。然而,在某些情況下,由于要繪制的變量的數(shù)量,圖表的選擇可能取決于哪些系列類型支持輸入變量的數(shù)量。下表顯示了每種系列類型允許的變量數(shù)量。
標(biāo)記可用于擴(kuò)展2變量系列類型的值。請(qǐng)參閱下面的示例,該示例在同一圖表中使用了3個(gè)條形系列類型的實(shí)例。
例子:
使用Bar系列類型
以最簡(jiǎn)單的形式,數(shù)據(jù)產(chǎn)生以下圖表,按月分組信息:
代碼:
[C#]
foreach(Steema.TeeChart.Styles.Series tSeries in tChart1.Series) {tSeries.Marks.Visible = false;} tChart1.Header.Text = "Production results"; bar1.Add(300,"Jan"); bar1.Add(325,"Feb"); bar1.Add(287,"Mar"); bar1.Title = "Product10"; bar2.Add(175,"Jan"); bar2.Add(223,"Feb"); bar2.Add(241,"Mar"); bar2.Title = "Product12"; bar3.Add(461,"Jan"); bar3.Add(470,"Feb"); bar3.Add(455,"Mar"); bar3.Title = "Product14";
點(diǎn)擊復(fù)制
[VB.Net]
Dim TSeries As Steema.TeeChart.Styles.Series For Each TSeries In TChart1.Series TSeries.Marks.Visible = False Next TChart1.Header.Text = "Production results" Bar1.Add(300, "Jan") Bar1.Add(325, "Feb") Bar1.Add(287, "Mar") Bar1.Title = "Product10" Bar2.Add(175, "Jan") Bar2.Add(223, "Feb") Bar2.Add(241, "Mar") Bar2.Title = "Product12" Bar3.Add(461, "Jan") Bar3.Add(470, "Feb") Bar3.Add(455, "Mar") Bar3.Title = "Product14"
點(diǎn)擊復(fù)制
或者(按產(chǎn)品分組):
代碼:
[C#]
foreach(Steema.TeeChart.Styles.Series tSeries in tChart1.Series)
foreach(Steema.TeeChart.Styles.Series tSeries in tChart1.Series) {tSeries.Marks.Visible = false;} tChart1.Header.Text = "Production results"; bar1.Add(300,"Product10"); bar1.Add(175,"Product12"); bar1.Add(461,"Product14"); bar1.Title = "Jan"; bar2.Add(325,"Product10"); bar2.Add(223,"Product12"); bar2.Add(470,"Product14"); bar2.Title = "Feb"; bar3.Add(287,"Product10"); bar3.Add(241,"Product12"); bar3.Add(455,"Product14"); bar3.Title = "Mar";
點(diǎn)擊復(fù)制
[VB.Net]
Dim TSeries As Steema.TeeChart.Styles.Series For Each TSeries In TChart1.Series TSeries.Marks.Visible = False Next TChart1.Header.Text = "Production results" Bar1.Add(300, "Product10") Bar1.Add(175, "Product12") Bar1.Add(461, "Product14") Bar1.Title = "Jan" Bar2.Add(325, "Product10") Bar2.Add(223, "Product12") Bar2.Add(470, "Product14") Bar2.Title = "Feb" Bar3.Add(287, "Product10") Bar3.Add(241, "Product12") Bar3.Add(455, "Product14") Bar3.Title = "Mar"
點(diǎn)擊復(fù)制
我們?cè)谏厦娴谋碇刑砑恿诵碌闹?stock):
表中的庫(kù)存值通常高于月產(chǎn)量,因此顯示它們會(huì)得到下圖(這次是2D)。該圖表使用線系列來(lái)區(qū)分股票。
將以下代碼添加到前面示例的第一個(gè)代碼中:
[C#]
line1.Add(600,"Jan"); line1.Add(715,"Feb"); line1.Add(676,"Mar"); line1.Title = "Product10 Stock"; line1.Color = bar1.Color; line2.Add(245,"Jan"); line2.Add(270,"Feb"); line2.Add(315,"Mar"); line2.Title = "Product10 Stock"; line2.Color = bar2.Color; line3.Add(800,"Jan"); line3.Add(755,"Feb"); line3.Add(835,"Mar"); line3.Title = "Product10 Stock"; line3.Color = bar3.Color;
點(diǎn)擊復(fù)制
[VB.Net]
Line1.Add(600, "Jan") Line1.Add(715, "Feb") Line1.Add(676, "Mar") Line1.Title = "Product10 Stock" Line1.Color = Bar1.Color Line2.Add(245, "Jan") Line2.Add(270, "Feb") Line2.Add(315, "Mar") Line2.Title = "Product10 Stock" Line2.Color = Bar2.Color Line3.Add(800, "Jan") Line3.Add(755, "Feb") Line3.Add(835, "Mar") Line3.Title = "Product10 Stock" Line3.Color = Bar3.Color
點(diǎn)擊復(fù)制
向系列添加數(shù)據(jù)
大多數(shù)系列類型(other than ADO.NET datasources Tutorial 8 and Functions Tutorial 7除外)使用Add方法的24個(gè)泛型重載來(lái)添加數(shù)據(jù)。
也有一些例外,見下表:
請(qǐng)注意,除了ShapeSeries之外,所有系列特定的Add方法都是作為進(jìn)一步的重載自動(dòng)添加到通用的Add方法中,因此可以從那里訪問(wèn)(例如candleSeries1)。添加(NewDateTime(27) 2002年,11日,100400200300);)。
添加點(diǎn)時(shí),可以手動(dòng)為點(diǎn)添加顏色
例子:
[C#]
bar1.Add(50,"Tomatoes",Color.Tomato);
點(diǎn)擊復(fù)制
[VB.Net]
Bar1.Add(50, "Tomatoes", Color.Tomato)
點(diǎn)擊復(fù)制
或者,您可以允許TeeChart分配顏色。TeeChart將為每個(gè)新系列或每個(gè)新系列點(diǎn)選擇最多19種獨(dú)特且尚未使用的顏色之一。ColorEach = True。
例子:
[C#]
Random rnd = new Random(); bar1.ColorEach = true; for(int i = 0; i < 19; ++i) { int higher = i + 65; char letter = (char) higher; bar1.Add(rnd.Next(100),letter.ToString()); }
點(diǎn)擊復(fù)制
[VB.Net]
Dim i As Integer Bar1.ColorEach = True For i = 0 To 19 Bar1.Add(Rnd() * 100, Chr(i + 65)) Next
點(diǎn)擊復(fù)制
可以在點(diǎn)上添加透明顏色,以便為ValueList中的值保留空間,而不顯示在圖表上。
例子:
[C#]
bar1.Add(45, "My Transparent Bar", Color.Transparent);
bar1.Add(45, "My Transparent Bar", Color.Transparent);
點(diǎn)擊復(fù)制
[VB.Net]
Bar1.Add(45, "My Transparent Bar", Color.Transparent)
點(diǎn)擊復(fù)制
從序列中刪除數(shù)據(jù)點(diǎn)
Use Series.Delete to delete a point from a Series. Series.Delete有兩個(gè)重載:
-
public Void Delete(System.Int32)
刪除序列中的第n個(gè)點(diǎn)。 -
public Void Delete(System. Int32, System.Int32)
從序列中的第n個(gè)點(diǎn)開始刪除若干點(diǎn)n。
例子:
[C#]
bar1.Delete(7,2); (deletes two points starting from the 8th Series point (index starts at zero))
點(diǎn)擊復(fù)制
[VB.Net]
Bar1.Delete(7, 2) (deletes two points starting from the 8th Series point (index starts at zero))
點(diǎn)擊復(fù)制
向序列添加空點(diǎn)
Series.Add 有三個(gè)重載,允許你添加一個(gè)Null點(diǎn)到一個(gè)系列:
-
添加一個(gè)新的空點(diǎn)。
public Int32 Add()
-
添加帶有指定文本的新的空點(diǎn)。
public Int32 Add(System.String)
-
在具有指定文本的指定x值處添加新的空點(diǎn)
public Int32 Add(System.Double, System.String)
上面的第二個(gè)重載將向Series添加一個(gè)Null點(diǎn),允許您為該點(diǎn)定義一個(gè)標(biāo)簽,但在該點(diǎn)的Series中留下一個(gè)斷點(diǎn)。在Line Series的情況下,斷點(diǎn)前的最后一個(gè)點(diǎn)不會(huì)與斷點(diǎn)后的第一個(gè)點(diǎn)連接。
例子:
[C#]
line1.Add("Null Point");
line1.Add("Null Point");
點(diǎn)擊復(fù)制
Line1.Add("Null Point")
點(diǎn)擊復(fù)制
請(qǐng)?jiān)赥eeChart幫助文件中查找其他兩個(gè)重載的使用示例。
如需下載產(chǎn)品TeeChart for NET ,請(qǐng)點(diǎn)擊產(chǎn)品名進(jìn)入下載頁(yè)面