簡體   English   中英

當值不同(非常高和非常低)時,如何在同一圖表上的圖表上看到2系列

[英]How can I see 2 Series over my chart on the same graph when values are different (very high and very low)

我定義了2個系列(我正在使用Telerik )來表示我的Network Traffic rateMBit/secPacket/sec ):

AreaSeries series;
AreaSeries series2;

series = new AreaSeries();
radChartView1.Series.Add(series);
series.BorderColor = Color.SteelBlue;
series.BackColor = Color.FromArgb(20, Color.SkyBlue);
series.BorderWidth = 1;
series.HorizontalAxis.ShowLabels = false;
series.VerticalAxis.ShowLabels = false;

series2 = new AreaSeries();
radChartView1.Series.Add(series2);
series2.BorderColor = Color.Gray;
series2.BackColor = Color.FromArgb(20, Color.Gray);
series2.BorderWidth = 1;
series2.HorizontalAxis.ShowLabels = false;
series2.VerticalAxis.ShowLabels = false;

我的圖表通過Timer接收了實時數據:

private void timerStatistics_Tick(object sender, EventArgs e)
{
    try
    {
        if (series.DataPoints.Count > 40)
            series.DataPoints.RemoveAt(0);
        series.DataPoints.Add(new Telerik.Charting.CategoricalDataPoint(AdapterStatistics.BitsPerSecond * 0.000001));

        if (series2.DataPoints.Count > 40)
            series2.DataPoints.RemoveAt(0);
        series2.DataPoints.Add(new Telerik.Charting.CategoricalDataPoint(AdapterStatistics.PacketsPerSecond));

    }
    catch (Exception)
    { }
} 

我的問題是,因為我的2個值非常不同,所以我只能看到我的系列之一(通常為Packet/sec ),因為例如MBit/sec的值為1.4而Packet/sec的值為200,所以從圖表中我可以看到最大的值,最小的值是如此之小,以至於無法看到(請參見我在紅色矩形框內的屏幕截圖中的一條非常小的藍線...):

圖片

如何解決?

不確定如何將其應用於Telerik控件,但是在常規圖表控件中,可以有2個x軸和2個y軸,並分配不同的系列以使用不同的軸。 因此,您可以執行以下操作:

series.YAxisType = AxisType.Primary;
series2.YAxisType = AxisType.Secondary;
Axis yaxis1 = chart.ChartAreas[0].AxisY;
Axis yaxis2 = chart.ChartAreas[0].AxisY2;
yaxis1.Maximum = 1e6;
yaxis2.Maximum = 1e3;

使用Telerik控件看起來非常相似,直接從Telerik網站( http://www.telerik.com/help/winforms/chartview-axes-multiple-axes.html )獲取:

LinearAxis verticalAxis1 = new LinearAxis();
verticalAxis1.AxisType = AxisType.Second;
LinearAxis verticalAxis2 = new LinearAxis();
verticalAxis2.AxisType = AxisType.Second;
verticalAxis2.HorizontalLocation = AxisHorizontalLocation.Right;

series.HorizontalAxis = horizontalAxis;
series.VerticalAxis = verticalAxis1;


series2.HorizontalAxis = horizontalAxis;
series2.VerticalAxis = verticalAxis2;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM