#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);