Как печатать метки на обеих сторонах диапазона в WinForms MS Chart с использованием C # - PullRequest
2 голосов
/ 10 марта 2010

Как я могу добавить метки для каждого значения в серии диапазонов?

Вы все знаете, что для построения ряда типов диапазонов нам нужно два значения y, такие как yvalue [0] и yvalue [1]. Здесь мне нужно добавить метки данных к каждому из этих значений yvalue (что означает как значение yvalue [0], так и значение yvalue [1]). Как я могу это реализовать? Может кто-нибудь предложить мне? Пожалуйста !!

Метка должна выглядеть примерно так, как показано ниже для диапазона (отображается на обеих сторонах диапазона).

Label1 ███████████████ Label2

                    Label███████████████████ Label

1 Ответ

2 голосов
/ 12 марта 2010

Нет встроенного способа сделать это в MS Chart. Однако есть уродливый маленький обходной путь, который даст вам нужный вам дисплей.

Для каждой точки данных (диапазона), которую вы хотите отобразить, вам нужно создать 2 точки данных, которые лежат друг над другом. Как пример:
DataPoint0: X = 1 Y = 5,10
DataPoint1: X = 1 Y = 10,5

Эти две точки данных расположены справа друг от друга, за исключением того, что одна отображается слева направо, а другая справа налево.
Для каждой DataPoint в CustomProperties есть свойство BarLabelStyle. Установите для этого параметра значение «Снаружи» для обеих точек данных. Обычно это будет отображать метку справа от линейки, но для DataPoint1 с обратными значениями Y метка теперь будет размещена слева от линейки. Итак, установите метку для DataPoint0 на 10 (максимальное значение), а для DataPoint1 установите метку на 5 (минимальное значение).

Это будет выглядеть как одна полоса диапазона с минимальным значением слева и максимальным значением справа.

Предостережение: Если какой-либо конец полосы диапазона находится слишком близко к краю вашего графика, MS Chart, в своей бесконечной мудрости, заставит метку отображаться внутри полосы диапазона. Чтобы преодолеть это, вы можете добавить третье число к значениям Y объекта DataPoint. Это третье значение не отображается, но если оно больше, чем самое большое значение Y в вашем ряду данных, оно заставит диаграмму масштабироваться, чтобы приспособиться к этому большему значению, поэтому ваши метки не будут вынуждены находиться внутри полос диапазона. Возможно, вы могли бы справиться с этим и другим способом, установив свойства ChartArea.

...