Как правильно отформатировать метки оси Y на диаграмме ASP.NET? - PullRequest
0 голосов
/ 12 июля 2011

Я пытаюсь построить диаграмму, используя собственный элемент управления диаграммой ASP.NET 4.0.

Я сделал почти все, что хотел, но если вы посмотрите на следующий скриншот:

enter image description here

Вы заметите, что все метки на оси Y являются шаткими, то есть они являются десятичными, и они не попадают непосредственно ни на одну из реальных линий сетки.

Цель моей диаграммы - показать значение, которое всегда будет между 0 и 16. Мне нужно знать точное значение, чтобы я мог установить линии сетки для представления каждого значения, используя этот код:

Chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Interval = 1;

Как видите, он показывает все строки от 0 до 16. Однако метки оси Y не только не выстраиваются, но и не являются целыми значениями. Мне бы хотелось, чтобы там была метка для КАЖДОЙ линии сетки, и я бы хотел, чтобы они были целыми значениями.

Я сделал свою долю в поиске в Google, но я в основном нахожу вещи, относящиеся к отключению линий сетки вообще, а это не то, чего я хочу.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 26 июля 2011

Когда я устанавливаю интервал, я только устанавливаю свойство для свойства Интервал оси

chart1.ChartAreas["ChartArea1"].AxisY.Interval = 1;

Поведение по умолчанию устанавливает основную сетку и основной тик на этот интервал, если только вы не переопределяете свойство, которое автоматически отключает все. Microsoft Charting, также известный как Dundas (где Microsoft получил код), может быть хитрым способом.

Хотя я не могу говорить о каждом свойстве в Microsoft Charting, оно помогает установить самое неспецифическое свойство, которое вы можете найти. Идите глубже, только если вы не получите желаемый результат, так как углубление может иметь непредвиденные последствия, переопределяя значения по умолчанию, которые обычно работают довольно хорошо.

т.е.:

chart1.ChartAreas["ChartArea1"].AxisY.Interval = 1;

вместо

chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Interval = 1;
0 голосов
/ 12 июля 2011

Разве вы не можете просто установить AxisY.Interval?

chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Interval = 1;
chart1.ChartAreas["ChartArea1"].AxisY.Interval = 1;

Я быстро создал тестовую таблицу и получил следующее:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...