ZedGraph — Добавление пороговой строки

#c# #zedgraph

#c# #zedgraph

Вопрос:

Это может быть просто, но я не могу в этом разобраться. У меня есть линейный график для каждого из счетчиков производительности ОС (Y-> значение, x-> Время). Теперь я хочу добавить прямую горизонтальную линию для порогового значения Y, скажем, красного цвета, чтобы оно отображалось на графике вместе с фактическими данными. Я уже знаю пороговое значение для каждого из моих счетчиков.

Как мне это сделать?

В настоящее время я делаю это, чтобы показать 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;
  

Ответ №1:

Вы можете нарисовать простую красную линию на графике, добавив 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);