TeeChart for .NET图表控件教程:如何与Series合作

作为TeeChart类型库结构的一个小背景,这里是对系列类和接口的一个解释。更多信息请参见本教程中的章节。

TeeChart for .NET是优秀的工业4.0 WinForm图表控件,官方独家授权汉化,集功能全面、性能稳定、价格实惠等优势于一体。TeeChart for .NET 中文版还可让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。

点击立即下载最新版TeeChart for .NET

系列类型 

TChart Series 类是所有 Series 类型的共同祖先。当使用TeeChart在线帮助获得关于任何系列类型的帮助时,请遵循位于继承类型列表中的系列类的链接,然后点击系列成员,那里将包括所有继承的属性和方法的列表。

系列类的结构 

作为TeeChart类型库结构的一个小背景,这里是对系列类和接口的一个解释。下图显示了TeeChart系列类之间的关系。所有的类都来自于通用的 “系列 “类,因此共享 “系列 “属性和方法。有几个抽象类派生自Series(Custom3DSeries、CustomBarSeries和CircledSeries),这些类以灰色显示,它们的接口不能直接用于编程,它们的特性被它们的后代Series类型所继承。所有派生的系列(橙色)都可以在TeeChart图库中访问,以纳入你的图表中。以这种方式派生的TeeChart系列,允许通过一个共同的索引结构对继承的属性和方法进行可编程的访问(见本节后面的示例代码)。

TeeChart for .NET图表控件教程:如何与Series合作

[C#]//Add a series at runtimeprivate 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);        }[VB.Net]'Add a series at runtimePrivate 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 

所有AreaSeries的属性和方法对新系列都是可用的,就像在设计时创建的任何系列一样。

在同一个图表中混合使用不同系列的例子是在一个图表中添加Area (Series(0)), Bar (Series(1)) 和 Line (Series(2)) 系列到一个图表中。所有这些都访问一个共同的索引结构,即图表的系列列表。与系列有关的工作可能看起来像下面这样。

[C#]private void Form1_Load(object sender, System.EventArgs e)        {            //You could add the Series at runtime             Steema.TeeChart.Styles.Area area1 = new Steema.TeeChart.Styles.Area(tChart1.Chart);            Steema.TeeChart.Styles.Bar bar1 = new Steema.TeeChart.Styles.Bar(tChart1.Chart);            Steema.TeeChart.Styles.Line line1 = new Steema.TeeChart.Styles.Line(tChart1.Chart);            //Use Series common properties             tChart1.Series[0].FillSampleValues(10);            tChart1.Series[1].FillSampleValues(10);            tChart1.Series[2].FillSampleValues(10);            tChart1.Series[1].Marks.Visible = false;            tChart1.Series[2].Marks.Visible = false;            //Modify Bar specific properties             bar1.BarStyle = Steema.TeeChart.Styles.BarStyles.Pyramid; //Change Bar type             bar1.Pen.Color = Color.Yellow; //Bar bounding lines colour             //Modify Line specific properties             line1.Stairs = true; //Set line to Stairs             line1.LinePen.Color = Color.Blue; //LineSeries bounding lines colour             //Modify Area specific properties             area1.AreaBrush.Style = System.Drawing.Drawing2D.HatchStyle.Cross; //Area fill pattern         }[VB.Net]Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        'You could add the Series at runtime         Dim Area1 As New Steema.TeeChart.Styles.Area(TChart1.Chart)        Dim Bar1 As New Steema.TeeChart.Styles.Bar(TChart1.Chart)        Dim Line1 As New Steema.TeeChart.Styles.Line(TChart1.Chart)        'Use Series common properties         TChart1.Series(0).FillSampleValues(10)        TChart1.Series(1).FillSampleValues(10)        TChart1.Series(2).FillSampleValues(10)        TChart1.Series(1).Marks.Visible = False        TChart1.Series(2).Marks.Visible = False        'Modify Bar specific properties         Bar1.BarStyle = Steema.TeeChart.Styles.BarStyles.Pyramid 'Change Bar type         Bar1.Pen.Color = Color.Yellow 'Bar bounding lines colour         'Modify Line specific properties         Line1.Stairs = True 'Set line to Stairs         Line1.LinePen.Color = Color.Blue 'LineSeries bounding lines colour         'Modify Area specific properties         Area1.AreaBrush.Style = System.Drawing.Drawing2D.HatchStyle.Cross 'Area fill pattern End Sub 

选择一个系列类型 

为图表选择系列类型在很大程度上取决于你自己对图表的要求。然而,在有些情况下,由于要绘制的变量数量,图表的选择可能取决于哪些系列类型支持输入变量的数量。下表显示了每种系列类型所允许的变量数量。

TeeChart for .NET图表控件教程:如何与Series合作标签可以用来扩展2个变量系列类型的价值。请看下面的例子,在同一个图表中使用了3个Bar系列类型的实例。

例子 

使用条形系列类型 

TeeChart for .NET图表控件教程:如何与Series合作在最简单的形式下,这些数据产生了以下图表,按月份对信息进行分组。
  TeeChart for .NET图表控件教程:如何与Series合作
[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";[VB.Net]Dim TSeries As Steema.TeeChart.Styles.SeriesFor Each TSeries In TChart1.Series    TSeries.Marks.Visible = FalseNextTChart1.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" 

或(按产品分组)

TeeChart for .NET图表控件教程:如何与Series合作
[C#]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";[VB.Net]Dim TSeries As Steema.TeeChart.Styles.SeriesFor Each TSeries In TChart1.Series    TSeries.Marks.Visible = FalseNextTChart1.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" 

我们在上面的表格中增加了新的数值(库存)。 

TeeChart for .NET图表控件教程:如何与Series合作表中的库存值通常高于月度产量的值,所以显示它们可以得到以下图表(这次是2D)。该图表使用线条系列来区分股票。
TeeChart for .NET图表控件教程:如何与Series合作代码
在前面第一个例子的代码中加入以下内容。
[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;[VB.Net]Line1.Add(600, "Jan")Line1.Add(715, "Feb")Line1.Add(676, "Mar")Line1.Title = "Product10 Stock"Line1.Color = Bar1.ColorLine2.Add(245, "Jan")Line2.Add(270, "Feb")Line2.Add(315, "Mar")Line2.Title = "Product10 Stock"Line2.Color = Bar2.ColorLine3.Add(800, "Jan")Line3.Add(755, "Feb")Line3.Add(835, "Mar")Line3.Title = "Product10 Stock"Line3.Color = Bar3.Color 

将数据添加到系列中 

大多数系列类型(除ADO.NET数据源教程8和函数教程7外)都使用24种通用重载的添加方法来添加数据。但也有一些例外情况,见下表。

请注意,除了ShapeSeries之外,所有特定的系列添加方法都被自动添加为通用添加方法的进一步重载,因此可以从这里访问(例如candleSeries1.Add(new DateTime(2002,11,27),100,400,200,300);)。

颜色 

在添加点的时候,可以手动为其添加颜色 
例子 

[C#]bar1.Add(50, "Tomatoes",Color.Tomato)。[VB.Net]Bar1.Add(50, "Tomatoes", Color.Tomato) 

另外,你可以让TeeChart分配一个颜色。TeeChart将为每个新系列选择最多19种独特的、尚未使用的颜色,或者如果Series.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());}[VB.Net]Dim i As IntegerBar1.ColorEach = TrueFor i = 0 To 19    Bar1.Add(Rnd() * 100, Chr(i + 65))Next 

一个透明的颜色可以被添加到一个点上,以便为ValueList中的值保留一个空间,而不在图表上显示。
例子 

[C#]bar1.Add(45, "My Transparent Bar", Color.Transparent)。[VB.Net]Bar1.Add(45, "My Transparent Bar", Color.Transparent) 

从系列中删除数据点 

使用Series.Delete从一个系列中删除一个点。Series.Delete有两个重载。

public Void Delete(System.Int32) 

删除系列中的第n个点。

public Void Delete(System.Int32, System.Int32) 

从系列中的第n个点开始删除若干个点。
例子 

[C#]bar1.Delete(7,2); (从系列的第8个点开始删除两个点(索引从0开始))[VB.Net]Bar1.Delete(7,2) (删除从第8个系列点开始的两个点(索引从零开始)) 

Series.Clear清除一个系列中的所有点。

将空点添加到系列中 

Series.Add有三个重载,允许你向系列中添加一个空点。
添加一个新的空(透明)点。
public Int32 Add() 

添加一个新的空点并指定文本。
public Int32 Add(System.String) 

在指定的X值处添加一个新的空点,并指定文字。
public Int32 Add(System.Double, System.String) 

上述第二个重载将在系列中添加一个空点,允许你为该点定义一个标签,但在系列中的该点留下一个断点。在线型系列的情况下,断点前的最后一个点不会与断点后的第一个点连接。 
例子 

[C#]line1.Add("Null Point")。[VB.Net]Line1.Add("Null Point") 

请在TeeChart帮助文件中查找其他两个重载,了解它们的使用实例。

在一个图表上混合系列类型 

TeeChart Pro提供了一个空的Chart Canvas作为数据系列的背景。这意味着没有预定义的图表类型。你可以定义你需要的图表类型,作为你希望显示的系列类型的混合。由于一些系列类型的特殊性,在一个图表上将该系列类型与另一个系列类型混合在一起是不现实的。当你添加一个新的系列时,TeeChart会在图表库中把不合适的系列类型显示为灰色,从而帮助你。对于你可以在一个图表中放置的系列的数量没有实际限制。

添加新系列 

[C#]private void button1_Click(object sender, System.EventArgs e)        {            Bar bar1 = new Bar(tChart1.Chart);            bar1.FillSampleValues(10);        }[VB.Net]Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim Bar1 As New Steema.TeeChart.Styles.Bar(TChart1.Chart)        Bar1.FillSampleValues(10)End Sub 

系列被添加到SeriesList中,可以通过Index, TChart1.Series(Index)访问,第一个系列从0开始。TeeChart Pro为系列添加了一个默认的名称(系列0,系列1,等等)。你可以使用Series.Title属性修改该名称。

为一个系列选择轴 

[C#]bar1.VertAxis = Steema.TeeChart.Styles.VerticalAxis.Right;bar1.HorizAxis = Steema.TeeChart.Styles.HorizontalAxis.Top;[VB.Net]Bar1.VertAxis = Steema.TeeChart.Styles.VerticalAxis.RightBar1.HorizAxis = Steema.TeeChart.Styles.HorizontalAxis.Top 

每个轴可以关联1个以上的系列。TeeChart将决定与轴相匹配的系列的最佳比例,但你可以自己改变轴的比例(见轴的教程)。可以添加额外的轴;它们将复制与前4个轴的对应部分相关的刻度(见教程中的额外轴)。

连接系列 

[C#]Steema.TeeChart.Functions.Average1 = new Steema.TeeChart.Functions.Average()。line1.Function = average1;line1.DataSource = bar1;bar1.FillSampleValues(10);line1.CheckDataSource()。[VB.Net]Dim Average1 As New Steema.TeeChart.Functions.Average()Line1.Function = Average1Line1.DataSource = Bar1Bar1.FillSampleValues(10)Line1.CheckDataSource() 

关于如何使用TeeChart函数的更多信息,请参见教程7–使用函数工作。

改变系列顺序 

[C#]tChart1.Series.Exchange(0, 1); //用Series(1)改变系列(0)的索引顺序。[VB.Net]TChart1.Series.Exchange(0, 1) '按照索引顺序用Series(1)改变Series(0)。

*注意。在交换系列后,系列的索引将被改变。因此,如果重新运行代码,上面的这行代码将永久地交换两个系列’0’和’1’,因为0变成了1,1变成了0。

系列值列表 

TeeChart系列将它们的值存储在一个Valuelist中,可通过ValueList类访问和修改。 

访问系列值 
你可以访问列表中的任何值。
例子 

[C#]MessageBox.Show(bar1.YValues[3].ToString()); //显示一个BarSeries的第4点的值(索引从0开始)。[VB.Net]MsgBox(Bar1.YValues(3)) '显示一个BarSeries的第4点的值(指数从0开始)。

以这种方式访问的值可用于在系列数据上设置陷阱。

[C#]for(int i = 0; i < bar1.Count; ++i)            {                if(bar1.YValues[i] > 500)                {                    MessageBox.Show("Value: (" + bar1.XValues[i] + ", " + bar1.YValues[i] + ") exceeds limit");                }            }[VB.Net]Dim i As IntegerFor i = 0 To Bar1.Count    If Bar1.YValues(i) > 500 Then        MsgBox("Value: (" & Bar1.XValues(i) & ", " & Bar1.YValues(i) & ") exceeds limit")    End IfNext 

同样的值可以通过一些系列方法和一些图表事件所使用的ValueIndex点获得。
例子 

[C#]private void tChart1_ClickSeries(object sender, Steema.TeeChart.Styles.Series s, int valueIndex, System.Windows.Forms.MouseEventArgs e)        {            if(s.Equals(bar1))            {                MessageBox.Show("ValueIndex is: " + valueIndex.ToString());                MessageBox.Show("Point's YValue is " + bar1.YValues[valueIndex].ToString());            }        }[VB.Net]Private Sub TChart1_ClickSeries(ByVal sender As Object, ByVal s As Steema.TeeChart.Styles.Series, ByVal valueIndex As Integer, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TChart1.ClickSeries        If s Is Bar1 Then            MsgBox("ValueIndex is: " & valueIndex)            MsgBox("Point's YValue is " & Bar1.YValues(valueIndex))        End IfEnd Sub 

使用数值的例子 

这段代码根据用户的鼠标点击来修改一个BarSeries Bar的值。
例子 

使用TChart.ClickSeries事件来确定用户的点击位置。

[C#]private void tChart1_ClickSeries(object sender, Steema.TeeChart.Styles.Series s, int valueIndex, System.Windows.Forms.MouseEventArgs e)        {            UpDatePoint(valueIndex,tChart1.Axes.Left.CalcPosPoint((e.Y)));        }[VB.Net]Private Sub TChart1_ClickSeries(ByVal sender As Object, ByVal s As Steema.TeeChart.Styles.Series, ByVal valueIndex As Integer, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TChart1.ClickSeries        UpDatePoint(valueIndex, TChart1.Axes.Left.CalcPosPoint(e.Y))End Sub 

调用UpdatePoint子程序来修改Bar的值。

[C#]private void UpDatePoint(int Bar, double Y)        {            if(Bar < tChart1.Series[0].Count)            {                tChart1.Series[0].YValues[Bar] = Y;                tChart1.Series[0].Repaint();            }                                                              }[VB.Net]Private Sub UpDatePoint(ByVal Bar As Integer, ByVal Y As Double)        If Bar < TChart1.Series(0).Count Then            TChart1.Series(0).YValues(Bar) = Y            TChart1.Series(0).Repaint()        End IfEnd Sub  

系列事件 

上一节介绍了系列事件的一些用法。本节展示了一些额外的用途。
OnClickSeries 
你可以使用OnClickSeries事件来获取关于系列的几乎所有信息(见 “访问系列值 “一节)。

这些例子适用于具有Datetime数据的系列,例如,这些测试值可用于以下事件的例子。

[C#]private void button1_Click(object sender, System.EventArgs e)        {            Random rnd = new Random();            line1.XValues.DateTime = true;            line1.Pointer.Visible = true;            line1.Add(DateTime.Parse("25/12/2002 10:30:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("25/12/2002 22:30:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("26/12/2002 09:20:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("26/12/2002 23:30:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("27/12/2002 11:10:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("27/12/2002 20:15:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("28/12/2002 08:15:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("28/12/2002 21:45:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("29/12/2002 12:45:00"),rnd.Next(100),"", Color.Red);            line1.Add(DateTime.Parse("29/12/2002 22:05:00"),rnd.Next(100),"", Color.Red);            line1.HorizAxis = Steema.TeeChart.Styles.HorizontalAxis.Top;        }private void tChart1_ClickSeries(object sender, Steema.TeeChart.Styles.Series s, int valueIndex, System.Windows.Forms.MouseEventArgs e)        {            //The below will show the Value of the nearest Point, not the exact Axis value at the clicked X and Y.             MessageBox.Show("Date is: " + DateTime.FromOADate(line1.XValues[valueIndex])            + " Value is: " + line1.YValues[valueIndex]);         }[VB.Net]Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Dim rnd As New Random()        Line1.XValues.DateTime = True        Line1.Pointer.Visible = True        Line1.Add(DateTime.Parse("25/12/2002 10:30:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("25/12/2002 22:30:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("26/12/2002 09:20:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("26/12/2002 23:30:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("27/12/2002 11:10:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("27/12/2002 20:15:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("28/12/2002 08:15:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("28/12/2002 21:45:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("29/12/2002 12:45:00"), rnd.Next(100), "", Color.Red)        Line1.Add(DateTime.Parse("29/12/2002 22:05:00"), rnd.Next(100), "", Color.Red)        Line1.HorizAxis = Steema.TeeChart.Styles.HorizontalAxis.TopEnd SubPrivate Sub TChart1_ClickSeries(ByVal sender As Object, ByVal s As Steema.TeeChart.Styles.Series, ByVal valueIndex As Integer, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TChart1.ClickSeries        'The below will show the Value of the nearest Point, not the exact Axis value at the clicked X and Y.         MsgBox("Date is: " & DateTime.FromOADate(Line1.XValues(valueIndex)) _              & " Value is: " & Line1.YValues(valueIndex))End Sub 

OnGetSeriesPointerStyle 

对于那些使用TChart指针的系列,你可以使用OnGetSeriesPointer事件访问和修改指针。

如果指针比上一次高,就画一个上三角,如果低,就画一个下三角,等等。

[C#]private void line1_GetPointerStyle(Steema.TeeChart.Styles.CustomPoint series, Steema.TeeChart.Styles.GetPointerStyleEventArgs e)        {            if(e.ValueIndex > 0)            {                if(line1.YValues[e.ValueIndex] > line1.YValues[e.ValueIndex - 1])                {                    e.Style = Steema.TeeChart.Styles.PointerStyles.Triangle;                }                else if(line1.YValues[e.ValueIndex] < line1.YValues[e.ValueIndex - 1])                {                    e.Style = Steema.TeeChart.Styles.PointerStyles.DownTriangle;                }                else                {                    e.Style = Steema.TeeChart.Styles.PointerStyles.Diamond;                }            }            else            {                e.Style = Steema.TeeChart.Styles.PointerStyles.Diamond;            }        }[VB.Net]Private Sub Line1_GetPointerStyle(ByVal series As Steema.TeeChart.Styles.CustomPoint, ByVal e As Steema.TeeChart.Styles.GetPointerStyleEventArgs) Handles Line1.GetPointerStyle        If e.ValueIndex > 0 Then            If (Line1.YValues(e.ValueIndex) > Line1.YValues(e.ValueIndex - 1)) Then                e.Style = Steema.TeeChart.PointerStyles.Triangle            ElseIf (Line1.YValues(e.ValueIndex) < Line1.YValues(e.ValueIndex - 1)) Then                e.Style = Steema.TeeChart.Styles.PointerStyles.DownTriangle            Else                e.Style = Steema.TeeChart.Styles.PointerStyles.Diamond            End If        Else            e.Style = Steema.TeeChart.Styles.PointerStyles.Diamond        End IfEnd Sub 

OnGetSeriesMark 

使用OnGetSeriesMark事件,在运行时修改Mark的内容。下面的代码根据相对于最后一个的值来改变MarkText的内容。
TeeChart支持通过DragMarks工具在重叠的情况下拖动Mark。

[C#]private void line1_GetSeriesMark(Steema.TeeChart.Styles.Series series, Steema.TeeChart.Styles.GetSeriesMarkEventArgs e)        {            if(e.ValueIndex > 0)            {                if(line1.YValues[e.ValueIndex] > line1.YValues[e.ValueIndex - 1])                {                    e.MarkText = e.MarkText + " (Up)";                }                else if(line1.YValues[e.ValueIndex] < line1.YValues[e.ValueIndex - 1])                {                    e.MarkText = e.MarkText + " (Down)";                }                else                {                    e.MarkText = e.MarkText + " (No Change)";                }            }        }[VB.Net]Private Sub Line1_GetSeriesMark(ByVal series As Steema.TeeChart.Styles.Series, ByVal e As Steema.TeeChart.Styles.GetSeriesMarkEventArgs) Handles Line1.GetSeriesMark        If (e.ValueIndex > 0) Then            If (Line1.YValues(e.ValueIndex) > Line1.YValues(e.ValueIndex - 1)) Then                e.MarkText = e.MarkText + " (Up)"            ElseIf (Line1.YValues(e.ValueIndex) < Line1.YValues(e.ValueIndex - 1)) Then                e.MarkText = e.MarkText + " (Down)"            End If        Else            e.MarkText = e.MarkText + " (No Change)"        End IfEnd Sub 

最后2个事件产生的图表外观是

TeeChart for .NET图表控件教程:如何与Series合作


现TeeChart for .NET已加入在线订购,现在抢购可立享优惠!

如果您对该图表控件感兴趣,欢迎加入图表控件QQ交流群:


标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月18日
下一篇 2021年5月18日

相关推荐

发表回复

登录后才能评论