这些类都继承自 QAbstractAxis。
QBarCategoryAxis
一、描述
QBarCategoryAxis 类提供柱状图的轴。
以下代码说明了如何使用 QBarCategoryAxis:
#include <QApplication>
#include <QChartView>
#include <QBarSeries>
#include <QBarCategoryAxis>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QChartView chartView;
QBarSeries *series = new QBarSeries;
chartView.chart()->addSeries(series);
chartView.chart()->createDefaultAxes();
QBarCategoryAxis *axisX = new QBarCategoryAxis;
QStringList categories;
categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
axisX->append(categories);
axisX->setRange("Feb", "May");
chartView.chart()->setAxisX(axisX, series);
chartView.show();
return a.exec();
}
二、属性成员
1、categories : QStringList | void categoriesChanged()
轴的上的文本列表。
2、count : const int | void countChanged()
轴的上的文本数量。
3、max : QString | void maxChanged(const QString &max)
min : QString | void minChanged(const QString &min)
| void rangeChanged(const QString &min, const QString &max)
轴上的最大值、最小值。
三、成员函数
1、void append(const QStringList &categories)
将 categories 附加到轴。
void append(const QString &category)
void insert(int index, const QString &category)
将类别插入到索引处的轴。
2、QString at(int index)
返回索引处的类别。索引必须有效。
3、QStringList categories()
返回类别列表。
4、【invokable】void clear()
删除所有类别。将轴范围的最大值和最小值设置为 QString::null。
5、void remove(const QString &category)
从轴中删除类别。
6、void replace(const QString &oldCategory, const QString &newCategory)
QColorAxis
一、描述
颜色轴,可以根据传递的渐变显示颜色比例。
二、属性成员
1、autoRange : bool
是否应从 QXYSeries::colorBy() 方法中传递的值列表中设置范围或从轴本身获取范围的属性。默认为true。
2、max : qreal / min : qreal
轴上最大值、最小值。
3、size : qreal
色标(color scale)的大小。根据对齐方式,该值指示宽度或高度。
4、tickCount : int
轴上刻度线的数量。如果 QColorAxis::gridVisible 等于 true,这表示在图表上绘制了多少条网格线。默认值为 5,数量不能小于 2。
默认情况下,网格线在 QColorAxis 中是不可见的,因为这种类型的轴不代表几何值。
三、成员函数
1、void setGradient(const QLinearGradient &gradient)
设置色阶上的渐变。如果轴附加到一个取消,渐变也被 QXYSeries::colorBy() 方法使用。
QDateTimeAxis
一、描述
QDateTimeAxis 类是将日期和时间添加到图表的轴。可以通过设置适当的 DateTime 格式来配置标签。QDateTimeAxis 适用于从公元前 4714 年到公元 287396 年的日期。
注意:QDateTimeAxis 在将 qreal 定义为浮点数的平台上被禁用。
QLineSeries *series = new QLineSeries;
QDateTime xValue;
xValue.setDate(QDate(2012, 1 , 18));
xValue.setTime(QTime(9, 34));
qreal yValue = 12;
series->append(xValue.toMSecsSinceEpoch(), yValue);
xValue.setDate(QDate(2013, 5 , 11));
xValue.setTime(QTime(11, 14));
qreal yValue = 22;
series->append(xValue.toMSecsSinceEpoch(), yValue);
QChartView *chartView = new QChartView;
chartView->chart()->addSeries(series);
// ...
QDateTimeAxis *axisX = new QDateTimeAxis;
axisX->setFormat("dd-MM-yyyy h:mm");
chartView->chart()->setAxisX(axisX, series);
二、属性成员
1、format : QString
在从 QDateTime 对象创建轴标签时使用的格式字符串。
2、max : QDateTime / min : QDateTime
轴上的最大值、最小值。
3、tickCount : int
轴上刻度线的数量。
QLogValueAxis
一、描述
QLogValueAxis 类是向图表的轴添加对数刻度的轴。
对数刻度是基于数量级的非线性刻度,因此轴上的每个刻度线都是前一个刻度线乘以一个值。
注意:如果 QLogValueAxis 附加到具有一个或多个在相关维度上具有负值或零值的点的曲线,则根本不会绘制该曲线。
二、属性成员
1、base : qreal
对数的底。该值必须大于 0 且不能等于 1。
2、labelFormat : QString
轴的标签格式。
格式字符串支持标准 C++ 库中 printf() 提供的以下转换说明符、长度修饰符和标志:d、i、o、x、X、f、F、e、E、g、G、c。
如果 QChart::localizeNumbers 为true,则支持的说明符仅限于:d、e、E、f、g、G 和 i。 此外,仅支持精度修饰符。其余的格式来自应用程序的默认 QLocale。
3、max : qreal / min : qreal
轴上的最大值、最小值。
4、minorTickCount : int
轴上的次要刻度线的数量。这表明在图表上的主要刻度之间绘制了多少条网格线。不为小刻度绘制标签。默认值为 0。将值设置为 -1 将自动计算主要刻度之间的网格线数。
5、【只读】tickCount : const int
轴上刻度线的数量。这表示在图表上绘制了多少条网格线。
QValueAxis
一、描述
QValueAxis 类将值添加到图表的轴。
QChartView *chartView = new QChartView;
QLineSeries *series = new QLineSeries;
// ...
chartView->chart()->addSeries(series);
QValueAxis *axisX = new QValueAxis;
axisX->setRange(10, 20.5);
axisX->setTickCount(10);
axisX->setLabelFormat("%.2f");
chartView->chart()->setAxisX(axisX, series);
二、类型成员
1、enum QValueAxis::TickType:此枚举描述了刻度和标签如何在轴上定位。
- TicksDynamic:根据 tickAnchor 和 tickInterval 值放置刻度。
- TicksFixed:刻度均匀地分布在轴范围内。tickCount 值指定刻度数。
三、属性成员
1、labelFormat、max、min、minorTickCount
同上。
2、tickAnchor : qreal
动态放置的刻度线和标签的起始值。
3、tickCount : int
轴上刻度线的数量。这表示在图表上绘制了多少条网格线。默认值为 5,数量不能小于 2。
4、tickInterval : qreal
动态放置的刻度线和标签之间的间隔。
5、tickType : TickType
刻度和标签的定位方法。
四、成员函数
1、void applyNiceNumbers()
修改轴上刻度线的当前范围和数量,使其看起来不错。该算法认为可以表示为 1*10^n、2*10^n 或 5*10^n 形式的数字是不错的数字。这些数字用于设置刻度线的间距。