• <menu id="w2i4a"></menu>
  • logo TeeChart .NET教程2018
    文檔首頁>>TeeChart .NET教程2018>>【TeeChart .NET教程】(四)軸控制

    【TeeChart .NET教程】(四)軸控制


    【下載TeeChart.Net最新版本】

    TeeChart Pro將自動(dòng)為用戶定義所有Axis標(biāo)簽,并提供足夠的靈活性來定制用戶可能具有的任何特定要求,TeeChart Pro提供真正的多軸,它們可在設(shè)計(jì)或運(yùn)行時(shí)使用,并為Axis定義提供無數(shù)可能性和靈活性,本教程將介紹軸控制的應(yīng)用:

    (一)軸控制——關(guān)鍵領(lǐng)域

    1.1Scales——縮放

    將系列數(shù)據(jù)添加到圖表時(shí),會(huì)自動(dòng)設(shè)置軸刻度,用戶可以使用Axis屬性在設(shè)計(jì)時(shí)或運(yùn)行時(shí)更改默認(rèn)值。

    teechart

    Non date-time data——非日期時(shí)間數(shù)據(jù)

    添加新系列時(shí),TeeChart編輯器的Axis頁面的Scales部分將顯示Automatic selected和其他灰色選項(xiàng)。顯示的所有值均為數(shù)字。

    teechart

    Date-time data——日期時(shí)間數(shù)據(jù)

    當(dāng)系列在Series(系列) —>General(常規(guī))頁面上將日期時(shí)間設(shè)置為true(對于該軸)時(shí),TeeChart編輯器的軸頁面的“Scales(縮放)”部分將顯示“Auto(自動(dòng)選定)”和其他灰色選項(xiàng)。值顯示為日期時(shí)間值。
    自動(dòng)選擇最佳軸刻度范圍以適合用戶的數(shù)據(jù),在設(shè)計(jì)時(shí)使用TeeChart編輯器將線系列添加到圖表,然后使用以下代碼添加命令按鈕:

    [C#.Net]

    Random rnd = new Random(); 
    for(int i = 0; i <= 40; ++i) 
    line1.Add(Convert.ToDouble(i),rnd.Next(100),Color.Red); 

    [VB.Net]

    Dim i As Integer 
    For i = 0 To 40 
       Line1.Add(Convert.ToDouble(i), Rnd() * 100, Color.Red) 
    Next i 

    在按鈕中運(yùn)行代碼將繪制一個(gè)包含40個(gè)隨機(jī)值的Line Series。在設(shè)計(jì)時(shí)轉(zhuǎn)到TeeChart編輯器,在“Axis(軸)”頁面的“Bottom Axis scales(底軸刻度)”部分中,將“Auto(自動(dòng))”設(shè)置為“off'(關(guān)閉)”?,F(xiàn)在可以配置軸刻度的最大值和最小值,再次運(yùn)行代碼將顯示值,具體取決于用戶為Axis配置的值,使用鼠標(biāo)右鍵可以滾動(dòng)查看剩余值。

    按代碼設(shè)置軸刻度

    更改最大值和最小值代碼:

    [C#.Net]

    Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom; 
    bottomAxis.Automatic = false; 
    bottomAxis.Maximum = 36; 
    bottomAxis.Minimum = 5; 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .Automatic = False 
       .Maximum = 36 
       .Minimum = 5 
    End With 

    將Axis scale Maximum和Minimum設(shè)置為自動(dòng)代碼:

    [C#.Net]

    Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom; 
    bottomAxis.AutomaticMaximum = true; 
    bottomAxis.AutomaticMinimum = false; 
    bottomAxis.Minimum = 5; 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .AutomaticMaximum = True 
       .AutomaticMinimum = False 
       .Minimum = 5 
    End With 
    1.2 Increment——增量

    用戶可以自定義軸的間隔,從Axis頁面的Scales部分選擇Desired Increment組合框,并添加所需的增量,代碼: 

    [C#.Net]

    Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom; 
    bottomAxis.Increment = 20; 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .Increment = 20 
    End With 

    Datetime data:日期型數(shù)據(jù)

    如果數(shù)據(jù)是datetime(可以通過轉(zhuǎn)到Series,General頁面將數(shù)據(jù)設(shè)置為系列的datetime),Chart-> Axis頁面的scale部分將顯示日期時(shí)間范圍。從Desired Increment組合框中顯示的范圍中選擇增量,并添加一些樣本數(shù)據(jù):

    [C#.Net]

    Random rnd = new Random(); 
    DateTime today = DateTime.Today; 
    TimeSpan oneDay = TimeSpan.FromDays(1); 
    line1.XValues.DateTime = true; 
    for(int i = 1; i <= 25; ++i)  
         line1.Add(today,rnd.Next(100),Color.Red); 
         today += oneDay; 

    [VB.Net]

    Dim i As Integer 
    Dim Today As DateTime = DateTime.Today 
    Dim OneDay As TimeSpan = TimeSpan.FromDays(1) 
    Line1.XValues.DateTime = True 
    For i = 1 To 25 
         Line1.Add(Today, Rnd() * 100, Color.Red) 
         Today = Today.Add(OneDay) 
    Next 

    在運(yùn)行時(shí)更改增量:

    [C#.Net]

    Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom; 
    bottomAxis.Increment = Steema.TeeChart.Utils.GetDateTimeStep(Steema.TeeChart.DateTimeSteps.TwoDays); 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .Increment = Steema.TeeChart.Utils.GetDateTimeStep(Steema.TeeChart.DateTimeSteps.TwoDays) 
    End With 

    有關(guān)日期軸標(biāo)簽的更多信息,請參閱AxisLabels.ExactDateTime屬性。

    注意:

    更改軸標(biāo)簽頻率時(shí),TeeChart將根據(jù)AxisLabels.Separation屬性的設(shè)置避免標(biāo)簽重疊。這意味著如果標(biāo)簽頻率太高而不適合標(biāo)簽,那么TeeChart將分配“最適合”。更改標(biāo)簽角度和標(biāo)簽分離是2個(gè)選項(xiàng),可幫助用戶安裝所需的標(biāo)簽。

    1.3 Titles——標(biāo)題

    標(biāo)題設(shè)置在Axis頁面的標(biāo)題部分,用戶可以更改Axis的標(biāo)題文本及其字體和陰影屬性,還可以指定標(biāo)題文本的角度和大小。

    注意:

    更改軸標(biāo)簽頻率時(shí),TeeChart將根據(jù)AxisLabels.Separation屬性的設(shè)置避免標(biāo)簽重疊。這意味著如果標(biāo)簽頻率太高而不適合標(biāo)簽,那么TeeChart將分配“最適合”。更改標(biāo)簽角度和標(biāo)簽分離是2個(gè)選項(xiàng),可幫助用戶安裝所需的標(biāo)簽。

    1.4 標(biāo)簽格式:

    用戶可以將所有標(biāo)準(zhǔn)數(shù)字和日期格式應(yīng)用于Axis標(biāo)簽。“Axis(軸)”頁面的“Labels(標(biāo)簽)”部分包含“Values format(值格式)”字段。如果數(shù)據(jù)是datetime,則字段名稱將更改為“Date time format”,在運(yùn)行時(shí)使用代碼:

    [C#.Net]

    tChart1.Axes.Bottom.Labels.ValueFormat = "#,##0.00;(#,##0.00)"; 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .Labels.ValueFormat = "#,##0.00;(#,##0.00)" 
    End With 

    或者用于日期時(shí)間數(shù)據(jù)

    [C#.Net]

    tChart1.Axes.Bottom.Labels.DateTimeFormat =“dddd / MMMM / yyyy”; 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .Labels.DateTimeFormat = "dddd/MMMM/yyyy" 
    End With 
    1.5 MultiLine標(biāo)簽

    軸標(biāo)簽可以顯示為多行文本而不是單行文本,使用LineSeparator字符()分隔行。

    例:

    [C#.Net]

    bar1.Add(1234,“New”+ Steema.TeeChart.Texts.LineSeparator +“Cars”,Color.Red); 
    bar1.Add(2000,“Old”+ Steema.TeeChart.Texts.LineSeparator +“Bicycles”,Color.Red); 
    tChart1.Panel.MarginBottom = 10; 

    [VB.Net]

    Bar1.Add(1234, "New" + Steema.TeeChart.Texts.LineSeparator + "Cars", Color.Red) 
    Bar1.Add(2000, "Old" + Steema.TeeChart.Texts.LineSeparator + "Bicycles", Color.Red) 
    TChart1.Panel.MarginBottom = 10 
    

    DateTime標(biāo)簽的示例:

    以下將在兩行文本中顯示底部軸標(biāo)簽,一行顯示月份和日期,第二行顯示年份:

    • Feb-28 Mar-1 ..
    • 2003 2003 ..

    [C#.Net]

    bar1.Add(DateTime.Parse(“28/2/2003”),100,Color.Red); 
    bar1.Add(DateTime.Parse(“1/3/2003”),200,Color.Red); 
    bar1.Add(DateTime.Parse(“2/3/2003”),150,Color.Red); 
    bar1.XValues.DateTime = true; 
    tChart1.Axes.Bottom.Labels.DateTimeFormat =“MM / dd hh:mm”; 
    tChart1.Axes.Bottom.Labels.MultiLine = true; 
    tChart1.Panel.MarginBottom = 10;

    [VB.Net]

    Bar1.Add(DateValue("28/2/2003"), 100, Color.Red) 
    Bar1.Add(DateValue("1/3/2003"), 200, Color.Red) 
    Bar1.Add(DateValue("2/3/2003"), 150, Color.Red) 
    Bar1.XValues.DateTime = True 
    TChart1.Axes.Bottom.Labels.DateTimeFormat = "MM/dd hh:mm" 
    TChart1.Axes.Bottom.Labels.MultiLine = True 
    TChart1.Panel.MarginBottom = 10 

    將AxisLabels.MultiLine屬性設(shè)置為True將自動(dòng)在有空格的行中拆分標(biāo)簽,有效地將Label分為兩個(gè):

    第一行:'mm / dd'

    第二行:'hh:mm'   
    在運(yùn)行時(shí)始終可以使用OnGetAxisLabel事件以編程方式將標(biāo)簽拆分為多行:

    [C#.Net]

    private void tChart1_GetAxisLabel(object sender, Steema.TeeChart.TChart.GetAxisLabelEventArgs e) 
             
                string myLabelText = e.LabelText; 
                tChart1.Axes.Bottom.Labels.SplitInLines(ref myLabelText, " "); 
                e.LabelText = myLabelText; 

    [VB.Net]

    Private Sub TChart1_GetAxisLabel(ByVal sender As Object, ByVal e As Steema.TeeChart.TChart.GetAxisLabelEventArgs) Handles TChart1.GetAxisLabel 
            Dim myLabelText As String 
            myLabelText = e.LabelText 
            TChart1.Axes.Bottom.Labels.SplitInLines(myLabelText, " ") 
            e.LabelText = myLabelText 
    End Sub 

    在上面的示例中,全局“TeeSplitInLines”過程將“LabelText”中的所有空格轉(zhuǎn)換為行分隔符(返回),軸AxisLabels.Angle屬性也可用于多線軸標(biāo)簽。

    Customising Axis labels——自定義軸標(biāo)簽
    可以通過使用Axis事件獲得進(jìn)一步的Label控制。事件允許用戶激活/停用/更改任何單個(gè)Axis標(biāo)簽。以下示例修改每個(gè)Label,將文本短語放在點(diǎn)索引值的前面:

    [C#.Net]

    private void button1_Click(object sender, System.EventArgs e) 
             
                bar1.FillSampleValues(20); 
                tChart1.Axes.Bottom.Labels.Style = AxisLabelStyle.Mark; 
             
     
    private void tChart1_GetAxisLabel(object sender, Steema.TeeChart.TChart.GetAxisLabelEventArgs e) 
             
                if(((Steema.TeeChart.Axis)sender).Equals(tChart1.Axes.Bottom)) 
                e.LabelText = "Period " + Convert.ToString(e.ValueIndex);

    [VB.Net]

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
            Bar1.FillSampleValues(20) 
            TChart1.Axes.Bottom.Labels.Style = Steema.TeeChart.AxisLabelStyle.Mark 
    End Sub 
     
    Private Sub TChart1_GetAxisLabel(ByVal sender As Object, ByVal e As Steema.TeeChart.TChart.GetAxisLabelEventArgs) Handles TChart1.GetAxisLabel 
            If CType(sender, Steema.TeeChart.Axis) Is TChart1.Axes.Bottom Then 
                e.LabelText = "Period " & e.ValueIndex 
            End If 
    End Sub 
    1.6 Logarithmic Labels——指數(shù)標(biāo)簽

    正常對數(shù)標(biāo)記可以通過以下方式設(shè)置: 

    [C#.Net]

    private void button1_Click(object sender, System.EventArgs e) 
             
                Random rnd = new Random(); 
                Steema.TeeChart.Axis leftAxis = tChart1.Axes.Left; 
                tChart1.Aspect.View3D = false; 
                bar1.Marks.Visible = false; 
                for(int i = 0; i <= 100; ++i) 
                bar1.Add(rnd.Next(100) * i); 
                leftAxis.LogarithmicBase = 10; 
                leftAxis.Logarithmic = true; 
                leftAxis.SetMinMax(0, 10000); 
                leftAxis.Labels.ValueFormat = "#e+0";   

    [VB.Net]

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
            Dim i As Integer 
            TChart1.Aspect.View3D = False 
            Bar1.Marks.Visible = False 
            For i = 0 To 10000 Step 100 
                Bar1.Add(Rnd() * i) 
            Next 
            With TChart1.Axes.Left 
                .LogarithmicBase = 10 
                .Logarithmic = True 
                .SetMinMax(0, 10000) 
                .Labels.ValueFormat = "#e+0" ' exponential format  
            End With 
    End Sub 

     標(biāo)簽將根據(jù)對數(shù)基數(shù)(默認(rèn)為10)進(jìn)行設(shè)置,因此,在這種情況下給出標(biāo)簽為1,10,100,1000,10000。

    1.7 Ticks and Minor——勾選和次要

    teechart

    有3種勾選類型和2種類型的網(wǎng)格,用戶可以更改每個(gè)刻度和網(wǎng)格類型的長度,寬度和顏色??梢酝ㄟ^“Ticks”選項(xiàng)卡對Ticks及其關(guān)聯(lián)的Grid和Inner Ticks進(jìn)行更改; 可以通過“Minor(次要)”選項(xiàng)卡更改次要刻度及其關(guān)聯(lián)的網(wǎng)格。TeeChart Pro版本5的新功能是能夠更改寬度大于1(默認(rèn)值)的刻度和網(wǎng)格樣式。

    [C#.Net]

    Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom; 
    bottomAxis.Ticks.Length = 7; 
    bottomAxis.Ticks.Color = Color.Green; 
    bottomAxis.MinorTickCount = 10;   

    [VB.Net]

    With TChart1.Axes.Bottom 
       .Ticks.Length = 7 
       .Ticks.Color = Color.Green 
       .MinorTickCount = 10 
    End With

    Axis position——軸位置 
    軸具有修改每個(gè)軸所在位置的屬性。在此示例中,軸移動(dòng)了圖表寬度的50%,因此它顯示在圖表中心:

    [C#.Net]

    Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom; 
    bottomAxis.PositionUnits = PositionUnits.Percent; 
    bottomAxis. RelativePosition = 50 

    [VB.Net]

    With TChart1.Axes.Bottom 
       .PositionUnits = PositionUnits.Percent 
       .RelativePosition = 50 
    End With

    (二)Additional Axes——附加軸

    2.1 Copying axes——復(fù)制軸

    TeeChart提供5個(gè)與數(shù)據(jù)相關(guān)的軸系列:Left(左),Top(上),Bottom(下),Right(右)和 Depth(深)。向圖表添加新系列時(shí),用戶可以定義系列應(yīng)與哪些軸相關(guān)(轉(zhuǎn)到“Series(系列)”選項(xiàng)卡“General(常規(guī))”頁面),可以使用Axis Customdraw方法在圖表上的任何位置重復(fù)前4軸中的任何一個(gè)(或全部)。此方法會(huì)復(fù)制Axis,但不會(huì)添加新的自定義軸。

    例:

    [C#.Net]

    private void Form1_Load(object sender, System.EventArgs e) 
             
                Random Rnd = new Random(); 
                tChart1.Aspect.View3D = false; 
                tChart1.Panel.Gradient.Visible = true; 
                for(int t = 0; t <= 20; ++t) 
                line1.Add(t, ((Rnd.Next(100)) + 1) - ((Rnd.Next(70)) + 1), Color.Red); 
     
             
     
    private void line1_BeforeDrawValues(object sender, Steema.TeeChart.Drawing.Graphics3D g) 
             
                int posAxis = 0; 
                if(tChart1.Axes.Left.Maximum > 0) 
                 
                    tChart1.Axes.Left.Draw(g.ChartXCenter - 10,g.ChartXCenter - 20,g.ChartXCenter,true); 
                    posAxis = tChart1.Axes.Left.CalcYPosValue(10); 
                    tChart1.Axes.Bottom.Draw(posAxis + 10, posAxis + 40, posAxis, true); 

    [VB.Net]

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
            Dim t As Integer 
            TChart1.Aspect.View3D = False 
            TChart1.Panel.Gradient.Visible = True 
            For t = 0 To 20 
                Line1.Add(t, ((Rnd() * 100) + 1) - ((Rnd() * 70) + 1), Color.Red) 
            Next 
        End Sub 
     
    Private Sub Line1_BeforeDrawValues(ByVal sender As Object, ByVal g As Steema.TeeChart.Drawing.Graphics3D) Handles Line1.BeforeDrawValues 
            Dim posAxis As Integer 
            If TChart1.Axes.Left.Maximum > 0 Then 
                TChart1.Axes.Left.Draw(g.ChartXCenter - 10, g.ChartXCenter - 20, g.ChartXCenter, True) 
                posAxis = TChart1.Axes.Left.CalcYPosValue(10) 
                TChart1.Axes.Bottom.Draw(posAxis + 10, posAxis + 40, posAxis, True) 
            End If 
    End Sub

    上面的示例代碼將生成以下圖像: 

    teechart

    2.2 自定義軸

    在此示例中,TeeChart將繪制新軸,一個(gè)水平,一個(gè)垂直位于圖表的中心。當(dāng)用戶滾動(dòng)圖表(用鼠標(biāo)右鍵拖動(dòng))時(shí),新的垂直軸將始終保持在圖表的中心,新的水平軸將垂直滾動(dòng)上下移動(dòng),新軸是默認(rèn)軸的精確副本。

    2.3 多個(gè)自定義軸

    與PositionPercent和拉伸屬性一起,可以使無限軸浮動(dòng)到圖表上的任何位置。滾動(dòng),縮放和軸命中檢測也適用于自定義創(chuàng)建的軸?,F(xiàn)在可以通過TeeChart Editor在設(shè)計(jì)時(shí)創(chuàng)建額外的軸,也可以在運(yùn)行時(shí)通過幾行代碼創(chuàng)建額外的軸:

    通過圖表編輯器

    teechart

    TeeChart為用戶提供在設(shè)計(jì)時(shí)創(chuàng)建自定義軸的功能,使其能夠以TeeChart的T恤文件格式保存。打開圖表編輯器并單擊“Axis(軸)”選項(xiàng)卡,然后選擇“+”按鈕以添加自定義軸。然后選擇“Position(位置)”選項(xiàng)卡,確保突出顯示新的自定義軸。此頁面上的“ Horizontal(水平)”復(fù)選框允許用戶將新的自定義軸定義為水平軸或?qū)⑵浔A魹槟J(rèn)垂直軸。如上所述,此頁面的其余部分和Axis頁面中的其他選項(xiàng)卡可用于更改自定義軸的比例,增量,標(biāo)題,標(biāo)簽,刻度,次刻度和位置。要將此新的自定義軸與所需的數(shù)據(jù)系列相關(guān)聯(lián),請選擇“Series(系列)”選項(xiàng)卡,然后轉(zhuǎn)到“General(常規(guī))”頁面,其中下拉組合框“Horizontal Axis(水平軸)”和“Vertical Axis(垂直軸)”將允許用戶選擇新的自定義軸,具體取決于用戶之前是將其定義為垂直軸還是水平軸。

    代碼:

    [C#.Net]

    private void Form1_Load(object sender, System.EventArgs e) 
             
                Line line1 = new Line(); 
                Line line2 = new Line();  
     
                tChart1.Aspect.View3D = false; 
                tChart1.Panel.Gradient.Visible = true; 
                tChart1.Header.Text = "TeeChart Multiple Axes"; 
                tChart1.Series.Add(line1); 
                tChart1.Series.Add(line2); 
     
                for(int t = 0; t <= 10; ++t) 
                 
                    line1.Add(Convert.ToDouble(t), Convert.ToDouble(10 + t), Color.Red); 
                    if(t > 1) 
                    line2.Add(Convert.ToDouble(t), Convert.ToDouble(t), Color.Green); 
                 
     
                Axis leftAxis = tChart1.Axes.Left; 
     
                leftAxis.StartPosition = 0; 
                leftAxis.EndPosition = 50; 
                leftAxis.AxisPen.Color = Color.Red; 
                leftAxis.Title.Font.Color = Color.Red; 
                leftAxis.Title.Font.Bold = true; 
                leftAxis.Title.Text = "1st Left Axis"; 
     
     
                Axis axis1 = new Axis(false, false, tChart1.Chart); 
     
                tChart1.Axes.Custom.Add(axis1); 
     
                line2.CustomVertAxis = axis1; 
     
                axis1.StartPosition = 50; 
                axis1.EndPosition = 100; 
                axis1.AxisPen.Color = Color.Green; 
                axis1.Title.Font.Color = Color.Green; 
                axis1.Title.Font.Bold = true; 
                axis1.Title.Text = "Extra Axis"; 
                axis1.PositionUnits= PositionUnits.Percent; 
                axis1.RelativePosition = 20; 
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();