C chart настройка осей

В настоящее время я пытаюсь разобраться в линейных графиках в Qt. По некоторым причинам мои графики, кажется, показывают действительно странное поведение. Когда я использую createDefaultAxis, он устанавливает минимальные и максимальные значения в соответствии с минимальными и максимальными значениями Серии за диаграммой. Хотя на первый взгляд все в порядке, оно уже отличается от поведения в этот пример . Минимальное значение Y там 1, минимальное значение на оси, однако, 0.

Сначала я подумал, что это может быть связано с изменением класса QChart, поэтому я создал свою собственную Ось и попробовал снова. На этот раз я установил диапазон осей Y от 0 до 100 и диапазон осей X от 1 до 52. Кроме того, я изменил количество тиков на 4 и 52. Однако график все еще выглядел как раньше и, похоже, не изменился. быть затронутым изменениями оси.

Я включил скриншот этой программы здесь

Я надеюсь, что вы можете помочь мне исправить это. Цель состоит в том, чтобы значения ряда соответствовали значениям на осях.

Редактировать: вот main.cpp:

Решение

series не привязан к какой-либо оси, по умолчанию он масштабируется для использования всей области графика.

Вы должны приложить series к оси, созданной как:

Определение

Содержит методы и свойства для управления осями в элементе управления Chart. Provides methods and properties that manage axes in the Chart control.

Комментарии

Этот класс инкапсулирует все функциональные возможности осей в Chart элементе управления и предоставляется AxisXсвойствами ChartArea , AxisY AxisX2 и AxisY2 объектов. This class encapsulates all the functionality for axes in the Chart control, and is exposed by the AxisX, AxisY, AxisX2 and AxisY2 properties of ChartArea objects.

Для всех диаграмм — за исключением линейчатых, линейчатых, круговых и кольцевых осей: основная и дополнительная оси. For all charts – except bar, stacked bar, pie and doughnut – the primary and secondary axes are as follows:

Тип оси Axis Type Описание Description
Основная ось X Primary X-Axis Нижняя горизонтальная ось. Bottom horizontal axis.
Вспомогательная ось X Secondary X-Axis Верхняя горизонтальная ось. Top horizontal axis.
Основная ось Y Primary Y-Axis Левая вертикальная ось. Left vertical axis.
Вспомогательная ось Y Secondary Y-Axis Правая вертикальная ось. Right vertical axis.

Линейные и линейчатые диаграммы с накоплением имеют оси, повернутые на 90 градусов по часовой стрелке, поэтому основная ось X для этих двух типов диаграмм представляет собой левую вертикальную ось. Bar and stacked-bar charts have their axes rotated 90 degrees clockwise, so the primary X axis for these two chart types is the left-vertical axis.

Примечание . Может быть только один набор осей — два вертикальных и два по горизонтали для каждого ChartArea объекта. Note There can be only one set of axes – two vertical and two horizontal – for each ChartArea object.

Axis Класс также содержит несколько методов, которые можно использовать для преобразования значений осей в абсолютные координаты пикселя, которые полезны для плоского пользовательского рисования или для относительных координат, которые полезны для трехмерного пользовательского рисования. The Axis class also contains several methods that can be used to convert axis values to absolute pixel coordinates, which are useful for 2D custom drawing, or to relative coordinates, which are useful for 3D custom drawing. Абсолютные и относительные координаты также можно преобразовать в значения осей. Absolute and relative coordinates can also be converted to axis values.

Ниже перечислены наиболее важные элементы оси, предоставляемые Axis классом. The following are the most important axis elements exposed by the Axis class:

Элемент Axis Axis Element Описание Description
Метки осей Axis Labels Метки оси и связанные с ними свойства. The labels of an axis, and their associated properties.
Линии сетки Grid Lines Основные и вспомогательные линии сетки оси. The major and minor grid lines of an axis.
Деления Tick Marks Основные и вспомогательные деления оси. The major and minor tick marks of an axis.
Полосковые линии Strip Lines Полосковые линии. Strip lines.
Читайте также:  Усилитель интернета на телефон

Конструкторы

Инициализирует новый экземпляр класса Axis. Initializes a new instance of the Axis class.

Инициализирует новый экземпляр класса Axis с использованием указанных значений chartArea и axisTypeName . Initializes a new instance of the Axis >chartArea and axisTypeName values.

Свойства

Получает или задает стиль стрелок двухмерной оси; этот стиль не применяется к областям трехмерных диаграмм. Gets or sets the arrow style of a 2D axis; this style is not applied to 3D chart areas.

Получает имя оси, которое может иметь значение X, Y, X2 или Y2. Gets the name of the axis, which can be either X, Y, X2 or Y2.

Получает или задает место пересечения оси связанной с нею осью. Gets or sets the location at which an axis is crossed by its associated axis.

Получает объект CustomLabelsCollection, используемый для хранения объектов CustomLabel. Gets a CustomLabelsCollection object used to store CustomLabel objects.

Получает или задает значение, указывающее, активирована ли ось. Gets or sets a value that indicates whether an axis is enabled.

Получает или задает цвет чередующихся полосковых линий. Gets or sets the color of interlaced strip lines.

Получает или задает интервал оси. Gets or sets the interval of an axis.

Получает или задает флаг, который определяет, используется ли на оси фиксированное количество интервалов, или количество интервалов зависит от размера оси. Gets or sets a flag that determines if a fixed number of intervals is used on the axis, or if the number of intervals depends on the axis size.

Получает или задает смещение интервала оси. Gets or sets the interval offset of an axis.

Получает или задает тип смещения интервала оси. Gets or sets the interval offset type of an axis.

Получает или задает тип интервала оси. Gets or sets the interval type of an axis.

Получает или задает флаг, определяющий, отображаются ли на оси чередующиеся полосковые линии. Gets or sets a flag that determines if interlaced strip lines are displayed for an axis.

Получает или задает флаг, который определяет, размещаются ли подписи оси автоматически. Gets or sets a flag that determines whether axis labels are automatically fitted.

Получает или задает флаг, который указывает, является ли ось логарифмической. Gets or sets a flag which indicates whether the axis is logarithmic. На логарифмических диаграммах не могут отображаться нулевые и отрицательные значения. Zeros or negative data values are not allowed on logarithmic charts.

Получает или задает флаг, который определяет, нужно ли добавлять на ось поля. Gets or sets a flag that determines whether to add a margin to the axis.

Получает или задает флаг, который определяет, нужно ли перемещать деления и подписи оси вместе с осью при изменении точки пересечения оси. Gets or sets a flag that determines whether tick marks and axis labels move with an axis if the crossing point of an axis changes.

Получает или задает флаг, который указывает, используется ли на оси обратная шкала. Gets or sets a flag which indicates whether the axis is reversed.

Получает или задает флаг, который указывает, будет ли в качестве минимального значения по оси автоматически выбран нуль, если все значения точек данных являются положительными. Gets or sets a flag which indicates whether the minimum value of the axis will be automatically set to zero if all data point values are positive. При наличии точек данных с отрицательными значениями будет использоваться минимальное значение точек данных. If there are negative data point values, the minimum value of the data points will be used.

Читайте также:  Игра про художника который сошел с ума

Получает или задает максимальный размер шрифта, используемый алгоритмом автоматического размещения подписей. Gets or sets the maximum font size that can be used by the label auto-fitting algorithm.

Получает или задает минимальный размер шрифта, используемый при применении алгоритма автоматического размещения подписей. Gets or sets the minimum font size that can be used by the label auto-fitting algorithm.

Получает или задает допустимые изменения, которые можно применить к подписям для их размещения вдоль оси. Gets or sets the allowable label changes that can be made to enable the label to be fit along an axis.

Получает или задает свойства LabelStyle оси. Gets or sets the LabelStyle properties of an axis.

Получает или задает цвет линии оси. Gets or sets the line color of an axis.

Получает или задает стиль линии оси. Gets or sets the line style of an axis.

Получает или задает толщину линии оси (в пикселях). Gets or sets the line width of an axis, in pixels.

Получает или задает значение основания логарифма для логарифмической оси. Gets or sets a value for the logarithm base for the logarithmic axis.

Получает или задает объект Grid, который используется для задания свойств линий основной сетки для оси. Gets or sets a Grid object used to set the major grid line properties for an axis.

Получает или задает объект TickMark, который используется для задания свойств основных делений оси. Gets or sets a TickMark object used to set the major tick mark properties of an axis.

Получает или задает максимальное значение на оси. Gets or sets the maximum value of an axis.

Получает или задает максимальный размер оси в процентах от области диаграммы. Gets or sets the maximum size of the axis, measured as a percentage of the chart area. Это значение используется алгоритмом автоматического создания макета. This value is used by the automatic layout algorithm.

Получает или задает минимальное значение на оси. Gets or sets the minimum value of an axis.

Получает или задает объект Grid, который используется для определения свойств линий вспомогательной сетки для оси. Gets or sets a Grid object used to specify the minor grid lines attributes of an axis.

Получает или задает объект TickMark, который используется для задания свойств вспомогательных делений оси. Gets or sets a TickMark object used to set the minor tick mark properties of an axis.

Получает или задает имя оси. Gets or sets the name of the axis.

Получает или задает стиль разрыва оси. Gets or sets the axis scale break style.

Получает или задает представление оси. Gets or sets the view of an axis.

Получает или задает полосу прокрутки оси. Gets or sets an axis scrollbar.

Получает объект коллекции StripLinesCollection. Gets a StripLinesCollection collection object.

Получает или задает объект, связанный с данным элементом диаграммы. Gets or sets an object associated with this chart element.

(Унаследовано от ChartElement)

TextOrientation

Получает или задает ориентацию текста в заголовке оси. Gets or sets the orientation of the text in the axis title.

Получает или задает заголовок оси. Gets or sets the title of the axis.

Получает или задает тип выравнивания заголовка оси. Gets or sets the alignment of an axis title.

Получает или задает свойства шрифта заголовка оси. Gets or sets the title font properties of an axis.

Получает или задает цвет текста заголовка оси. Gets or sets the text color of the axis title.

Читайте также:  Intel core i5 3470 сколько ядер

Получает или задает используемую для оси подсказку. Gets or sets the tooltip used for the axis.

Методы

Освобождает ресурсы, используемые объектом ChartElement. Releases the resources used by the ChartElement.

(Унаследовано от ChartElement)

Dispose(Boolean)

Освобождает неуправляемые и, при необходимости, управляемые ресурсы. Releases unmanaged and, optionally, managed resources.

Определяет, равен ли указанный объект Object текущему объекту ChartElement. Determines whether the specified Object is equal to the current ChartElement.

(Унаследовано от ChartElement)

GetHashCode()

Возвращает хэш-функцию для определенного типа. Returns a hash function for a particular type.

(Унаследовано от ChartElement)

GetPosition(Double)

Преобразует значение по оси в относительное положение (0–100%). Converts an axis value to a relative position (0-100%). Для логарифмических осей преобразует значение в линейную шкалу. If an axis is logarithmic, the value is converted to a linear scale.

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Унаследовано от Object)

MemberwiseClone()

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Унаследовано от Object)

PixelPositionToValue(Double)

Преобразует абсолютное положение пикселя вдоль оси в значение по этой оси. Converts an absolute pixel position along an axis to an axis value. Этот метод работает только в событиях рисования. This method only works in paint events.

Преобразует относительную координату вдоль оси в значение по этой оси. Converts a relative coordinate along an axis to an axis value. Этот метод работает только в событиях рисования. This method only works in paint events.

Автоматически округляет значения по оси. Automatically rounds axis values.

Возвращает строку, которая представляет текущий объект Object. Returns a string that represents the current Object.

(Унаследовано от ChartElement)

ValueToPixelPosition(Double)

Преобразует значение по оси в абсолютную координату вдоль оси. Converts an axis value to an absolute coordinate along an axis. Измеряется в пикселях. Measured in pixels. Этот метод работает только в событиях рисования. This method only works in paint events.

Преобразует значение по оси в относительное (0–100%). Converts an axis value to its relative position (0-100%). Для логарифмических осей преобразует значение в линейную шкалу. If an axis has a logarithmic scale, the value is converted to a linear scale. Этот метод работает только в событиях рисования. This method only works in paint events.

Как удалить ось округления OY в диаграмме?

Я передаю значение в формате 1,3546, а график показывает 1,35.

1 ответ

0 Решение TaW [2014-11-27 20:36:00]

Для данной Axis вы можете установить LabelStyle.Format .

Например, вы можете использовать это:

Примечание. Это форматирует Label сетки Axis, следовательно, вы воспринимаете округление. Фактически это значение для GridLines не значения DataPoints !

Чтобы отобразить Y-значения DataPoints вас есть три варианта, о которых я знаю, и я покажу вам каждого:

Вы можете отображать их внутри графика с каждой точкой

Вы можете отображать их как подсказки, когда мышь находится над точкой

или вы можете отображать их в CustomLabels вдоль оси Y, которая может быть тем, что вы хотите. Обратите внимание, что это будет только полезным вариантом, если

  • Существует очень ограниченное количество точек данных
  • Эти точки расположены достаточно далеко друг от друга

Если одно или оба условия не выполняются, CustomLabels будут перекрываться.

Настройка CustomLabels несколько CustomLabels . Вот фрагмент кода, который устанавливает один на каждую точку данных. Как уже отмечалось, вам может потребоваться вставить проверки для предотвращения перекрытия.

Первые два параметра CustomLabel относятся к Y-позиции или фактически к диапазону Y-Value, который они должны обозначать. Затем значение, отформатированное для отображения десятичных цифр, которые вы хотели. Наконец, первый ряд меток и никаких меток.

Вот скриншот, показывающий все три варианта работы:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector