2016-08-19 3 views
0

У меня проблема с позиционированием легенды, позволяющей изменять значения данных графика.ZedGraph Текст легенды Местоположение

Масштаб оси Zedgraph Y установлен на автоматический - GraphPane.YAxis.Scale.MinAuto = true. Граф заполнен различными строками данных, выбранными с помощью выпадающего списка. Это, очевидно, приводит к колебаниям значений Scale.Min. У меня есть легенда, расположенная под строкой минимального значения. Когда я выбираю разные источники, местоположение этой легенды скачет.

Как я могу указать положение легенд, чтобы он оставался в одном и том же месте независимо от ввода? Мне нужно, чтобы получить минимальное значение оси и смещать его на отрицательную величину, находящуюся только под данными графика. Было бы легко, если бы шкала была нулевой, но по мере ее изменения я теряюсь ...

Эти фотографии показывают, как легенда перемещается с разными данными.

Pic showing scale min of 1.2Pic with scale min of 9.5

Это код ссылки на размещение текста. Значение смещения, представляющее UNKNOWN, является тем, что мне нужно определять каждый раз.

TextObj Qtr1Text = new TextObj("Q" + Qtr1 + " 16", dQtrFirst, myPane.YAxis.Scale.Min - UNKNOWN); 

Как показано, оба смещения «Q2 16» равны 0,08.

или, может быть, есть намного лучший способ сделать все это?

ответ

0

Наконец-то выяснилось, как это сделать.

double yOffset = (myPane.YAxis.Scale.Max - myPane.YAxis.Scale.Min)/36; //magic number 
TextObj Qtr1Text = new TextObj("Text Value", xLocation, yOffset); 
myPane.GraphObjList.Add(Qtr1Text); 

Значение 36 - произвольное число, которое должно быть скорректировано так, чтобы дать вам нужный отрицательный интервал. 36 дает интервал, как на верхнем рис., Правая сторона «Q3 16».

Смежные вопросы