.NET ModelKit Suite Documentation

Оси и элементы осей

Необходимым условием построения большинства типов графиков является присутствие в графике двух перпендикулярных осей, вдоль которых будут откладываться аргументы и значения точек графика. Привязка серий к осям осуществляется свойствами ArgumentAxis (ось аргументов) и ValueAxis (ось значений). Тип оси не зависит от ее направления, но по умолчанию, в качестве оси аргументов используется горизонтальная ось, а в качестве оси значений – вертикальная ось, если таковые есть в графике.

Ось представляет собой шкалу, вдоль которой откладываются значения графиков. Интервал шкалы задается свойствами MinValue и MaxValue, определяющими, соответственно минимальное и максимальное значения оси. Ось может автоматически рассчитывать интервал, в зависимости от принимаемых значений точек серии, использующих эту ось. Для этого необходимо установить свойства MinValue и MaxValue в Auto. В случае если MinValue и MaxValue принимают константные значения, диапазон шкалы задается именно этими значениями независимо от автоматически рассчитанных значений. Также MinValue и MaxValue могут принимать относительное значение – в процентах от автоматически рассчитанного интервала. В случае автоматического расчета интервала может получиться так, что интервал будет полностью отрицательным или полностью положительным. Свойство StartFromZero определяет, будет ли интервал гарантированно включать в себя точку 0.

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

На графике ось представляет собой вертикальный или горизонтальный отрезок, который растягивается на высоту или ширину ChartArea с учетом отступов, задаваемых свойством Margins. Внешний вид оси задается свойствами Stroke (тип, цвет и толщина линии) и Arrow – вид наконечника оси. Направление оси задается свойствами Direction (направление по горизонтали или вертикали) и Reverse. Свойство AxisIndent задает расстояние между наконечником оси и окончанием шкалы:

Свойство CrossValue задает положение оси относительно другой оси, задаваемой свойством PerpendicularAxis.

Chart ModelKit содержит элементы, предназначенные для отображения рисок, подписей и другой информации на шкалах.

Элемент Ticks служит для отображения рисок на оси. Толщина рисок определяется свойством Stroke. Шаг делений задается свойством Step. Если Step принимает значение Auto, то количество делений задаётся в свойстве Divisions. Свойство Origin задает точку отсчета делений. Если свойство UseRoundValues установлено в true, то риски на шкале будут расставлены таким образом, чтоб соответствующие значения содержали минимальное количество дробных чисел. При этом количество делений будет меньше или равно значению свойства Divisions.

Длина риски задаётся в свойстве Length. В диапазоне между рисками выводятся промежуточные риски, которые делят этот диапазон в соответствии со свойством SubDivisions. Длина промежуточных рисок указывается в свойстве SubLength.

Взаимное расположение рисок и промежуточных рисок можно задать с помощью свойства SubTicksPosition. При отрисовке элемента риски будут равномерно распределены вдоль всей шкалы. Свойство UseDiscreteValue используется для отображения рисок на дискретной оси. В случае если свойство установлено в true, то риски будут выводиться только для дискретных значений оси.

Элемент ScaleMarks предназначен для отображения меток на оси. Тип метки задается свойством Shape, размеры меток определяются свойством MarkSize, а размеры промежуточных рисок – свойством SubMarkSize. Логика и свойства, задающие расположение меток на оси аналогична логике элемента Ticks.

Элемент ScaleLabels предназначен для отображения значений на оси. Если ось дискретна (свойство IsDescrete устанвлено в true), то ScaleLabels будут отображать дискретные значения оси. Если же ось недискретна, то надписи будут отображаться равномерно вдоль всей шкалы. Шаг делений задается свойством Step. Если Step принимает значение Auto, то количество делений задаётся в свойстве Divisions. Свойство Origin задает точку отсчета делений. Если свойство UseRoundValues установлено в true, то метки на оси будут расставлены таким образом, чтоб соответствующие значения содержали минимальное количество дробных чисел. При этом количество делений будет меньше или равно значению свойства Divisions. Угол поворота надписи задается свойством Angle, а ориентация надписи – свойством TextRotationMode. Свойства Fill и Stroke задают типы заливки и границы области, занимаемой надписью. С помощью свойства ItemMargins эта область может быть увеличена. Свойство ShowSuperposableLabels определяет, будут ли отображаться перекрывающиеся надписи.

Элемент CustomLabels схож с ScaleLabels, но позволяет задавать произвольные метки на оси, не привязанные к значениям оси. Каждая такая метка задается парой “текст” – “значение на оси” (класс TextItem, свойства Text и Value соответственно) и содержится в коллекции Labels. В случае если одна или несколько меток содержат Value равное Auto, то такие метки распределяются равномерно по шкале.

Элемент ScaleTitle предназначен для задания заголовка оси. Метка, задаваемая свойством Text, располагается в конце оси.

Элементы ScaleLabels, CustomLabels, ScaleTitle обладают несколькими общими свойствами, задающими внешний вид и положение меток. Свойство OddLabelsDistance позволяет задать выступ нечетных меток относительно четных. Свойство TextAlignment задает положение меток относительно точки на оси, соответствующей значению метки. Свойство Position позволяет задавать положение меток относительно самой высокой из них. Свойство Formula задает выражение для вычисления значения метки, а свойство TextFormat задает строку форматирования текста метки.

Элементы Ticks, ScaleMarks, ScaleLabels, CustomLabels, ScaleTitle обладают рядом общих свойств.

Если есть необходимость в том, чтобы выводились элементы оси только в заданном диапазоне, используется свойства MaxLimit, MinLimit, которые задают границы диапазона. Свойство UseLimits указывает на то, что будет использоваться ограничение на вывод элемента.

Отступ элементов от шкалы задаётся с помощью свойства Distance.

Зачастую ось содержит несколько элементов шкалы, например Ticks и ScaleLabels. Свойство Dock служит для установления взаимного расположения подобных элементов. Если у элемента свойство Dock установлено в None (значение по умолчанию), то расположение элемента на оси никак не зависит от других элементов оси и определяется только значением свойства Distance.

Если свойство Dock принимает значение Center, то элемент позиционируется по центру оси, независимо от других элементов оси. При значении Inside элемент располагается внутри оси, на расстоянии, задаваемом свойством Padding. Если Dock принимает значение Outside, то элемент позиционируется вне оси, на расстоянии Padding от нее.

Если ось содержит несколько элементов со значением Dock не равным None, то сначала расставляются элементы со значением Dock, равном Center, а затем остальные элементы с учетом размера уже установленных элементов в том порядке, в котором они были добавлены в ось.

Свойство Colorizer позволяет задать расцветку элементов шкалы. Также можно установить расцветку для всех элементов, лежащих на оси, задав свойство Colorizer у оси.

Элемент оси GridLines предназначен для отображения на графике сетки значений. Шаг сетки задается свойством Step, если оно установлено в Auto, то количество линий будет задаваться свойством Divisions. Свойство Origin определяет точку отсчета. Если свойство UseRoundValues установлено в true, то сетка на оси будет задана таким образом, чтоб соответствующие значения содержали минимальное количество дробных чисел. При этом количество линий будет меньше или равно значению свойства Divisions. Количество промежуточных линий задается свойством SubLinesCount.

Свойства Fill и AlternativeFill задают заливки для чередующихся полос. Свойства Stroke и SubStroke определяют тип основных и промежуточных линий.