2011-05-14 50 views
1

這可能很簡單,但我無法弄清楚。我對每個OS性能計數器都有一個線性圖(Y-> value,x-> Time)。現在我想爲紅色的閾值Y值添加一條水平直線,以便將其與實際數據一起顯示在圖形中。我已經知道每個櫃檯的閾值。ZedGraph - 添加閾值線

我該怎麼做?

我現在這樣做是爲了顯示自己的TabPage的一個perfcounter:

Cursor = Cursors.WaitCursor; 
var perfCounter = PerfDictValues.Value.First(pc => pc.Counter == counter); 
var tPage = new TabPage((tabControl1.TabPages.Count + 1).ToString()); 
tPage.Tag = perfCounter; 
tPage.Padding = new Padding { All = 8 }; 

var zedGraph = new ZedGraphControl(); 
zedGraph.Dock = DockStyle.Fill; 
var graphPane = zedGraph.GraphPane; 
graphPane.Title.Text = counter; 
graphPane.XAxis.Title.Text = String.Format("Max: {0}, Min: {1}, Avg: {2}", perfCounter.Maxm, perfCounter.Min, perfCounter.Average); 
var curve = graphPane.AddCurve(counter, perfCounter.PointList, Color.Blue, SymbolType.Diamond); //Want to add a threshold value from perfCounter.Threshold property 
graphPane.XAxis.Type = AxisType.Linear; 
graphPane.AxisChange(); 

tPage.Controls.Add(zedGraph); 
tabControl1.TabPages.Add(tPage); 
tabControl1.SelectedTab = tPage; 
grpOutput.Visible = true; 

回答

6

您可以通過添加一個LineObj到GraphObj名單上繪製圖形簡單的紅線,即由此得出一個水平線

double threshHoldY = 2; 
LineObj threshHoldLine = new LineObj(
    Color.Red, 
    graphPane.XAxis.Scale.Min, 
    threshHoldY, 
    graphPane.XAxis.Scale.Max, 
    threshHoldY); 
graphPane.GraphObjList.Add(threshHoldLine);