QXYSeries
一、描述
QXYSeries 继承自 QAbstractSeries,是曲线图、样条图和散点图的基类。QXYSeries 支持在图表上显示最佳拟合线。
二、类型成员
1、enum class QXYSeries::PointConfiguration:此枚举描述了一个点的特定配置。
- Color:此枚举值可以用来改变一个点的颜色。如果与 setPointConfiguration() 一起使用,配置的值应该是有效的 QColor。
- Size:此枚举值可以用来改变一个点的大小。如果与 setPointConfiguration() 一起使用,配置的值应该是一个数字,例如 qreal 或 int。
- Visibility:此枚举值可用于隐藏或显示点。如果与 setPointConfiguration() 一起使用,配置的值应该是布尔值。
- LabelVisibility:此枚举值可用于隐藏或显示点的标签。如果与 setPointConfiguration() 一起使用,配置的值应该是布尔值。
三、属性成员
1、bestFitLineColor : QColor | void bestFitLineColorChanged(const QColor &color)
最佳拟合线的颜色。
2、bestFitLineVisible : bool | void bestFitLineVisibilityChanged(bool visible)
最佳拟合线的可见性。默认为 false。
3、color : QColor | void colorChanged(QColor color)
曲线的颜色。这是 QLineSeries 或 QSplineSeries 的线条(画笔)颜色和 QScatterSeries 或 QAreaSeries 的填充(画刷)颜色。
4、pointLabelsClipping : bool | void pointLabelsClippingChanged(bool clipping)
是否启用数据点标签的剪辑。默认为 true。启用剪切时,绘图区域边缘的标签会被剪切。
5、pointLabelsColor : QColor | void pointLabelsColorChanged(const QColor &color)
用于数据点标签的颜色。
6、pointLabelsFont : QFont | void pointLabelsFontChanged(const QFont &font)
用于数据点标签的字体。
7、pointLabelsFormat : QString | void pointLabelsFormatChanged(const QString &format)
用于显示带有数据点的标签的格式。
QXYSeries 支持以下格式标签:
- @xPoint:数据点的 x 坐标。
- @yPoint:数据点的 y 坐标。
例如,格式标记的以下用法将生成显示数据点的标签,这些数据点显示在用逗号 (x, y) 分隔的括号内:
series->setPointLabelsFormat("(@xPoint, @yPoint)");
默认情况下,标签的格式设置为@xPoint、@yPoint。标签显示在绘图区域上,绘图区域边缘的标签被剪切。如果这些点彼此靠近,则标签可能会重叠。
8、pointLabelsVisible : bool | void pointLabelsVisibilityChanged(bool visible)
数据点标签的可见性。属性为 false。
9、pointsVisible : bool |
数据点是否可见并且应该被绘制。
10、selectedColor : QColor
选定点的颜色。这是标记为选中的点的填充(画刷)颜色。默认使用 color 的值。
四、成员函数
1、【信号】void clicked(const QPointF &point)
当通过单击图表中的点触发鼠标事件时,会发出此信号。
2、【信号】void doubleClicked(const QPointF &point)
当双击图表中的数据点时发出此信号。point 是触发第一次按下的点。
3、【信号】void hovered(const QPointF &point, bool state)
当鼠标悬停在图表中的点上时会发出此信号。当鼠标移到该点上时,state 变为 true,当鼠标再次移开时,state 变为 false。
4、【信号】void pressed(const QPointF &point)
当按下图表中的数据点并按住鼠标按键时,会发出此信号。
5、【信号】void released(const QPointF &point)
当在 point 指定的数据点上释放鼠标按下时,会发出此信号。
6、void setLightMarker(const QImage &lightMarker)
const QImage & lightMarker()
【信号】void lightMarkerChanged(const QImage &lightMarker)
设置用于在曲线的每个点上绘制标记的图像。
设置为 QImage() (QImage::isNull() == true)即不会绘制光标记。
使用此方法设置光标记,则不显示使用 setPointsVisible(true) 设置的可见点。
与 QScatterSeries 的元素不同,光标记不由 QGraphicsItem 表示,而只是被绘制(不创建对象)。但是,QXYSeries 的鼠标事件信号的行为方式相同,这意味着单击/按下/悬停光标记,将获得该点的确切域值。如果单击该行,仍然会获得介于域之间的值。就绘画和事件而言,光标记位于线条之上。
7、qreal markerSize()
void setMarkerSize(qreal size)
【信号】void markerSizeChanged(qreal size)
用于渲染曲线中的点的标记的大小。
默认大小取决于特定的 QXYSeries 类型。QScatterSeries 的默认值为 15.0,QLineSeries 的默认值为曲线的画笔大小 * 1.5
8、void setPen(const QPen &pen)
QPen pen()
【信号】void penChanged(const QPen &pen)
设置图表上绘制点的画笔。默认使用图表主题(QChart::setTheme())中的画笔。
void setBrush(const QBrush &brush)
QBrush brush()
设置图表上绘制点的画刷。默认使用图表主题(QChart::setTheme())中的画刷。
9、【信号】void pointAdded(int index)
当在 index 指定的位置添加一个点时会发出此信号。
10、void remove(qreal x, qreal y)
【信号】void pointRemoved(int index)
从曲线中删除具有坐标 x 和 y 的点。
void removePoints(int index, int count)
【信号】void pointsRemoved(int index, int count)
从 index 指定的位置开始的曲线中删除 count 指定的点数。
void clear()
从曲线中删除所有点。
11、void replace(qreal oldX, qreal oldY, qreal newX, qreal newY)
void replace(const QPointF &oldPoint, const QPointF &newPoint)
将坐标为 oldX 和 oldY 的点替换为坐标为 newX 和 newY 的点。如果旧点不存在,则不执行任何操作。
void replace(int index, qreal newX, qreal newY)
void replace(int index, const QPointF &newPoint)
将 index 指定位置处的点替换为坐标为 newX 和 newY 的点。
void replace(const QList<QPointF> &points)
用点指定的点替换当前点。
注意:这比一个一个替换数据点,或者先清除所有数据,然后追加新数据要快得多。
【信号】void pointReplaced(int index)
当一个点在 index 指定的位置被替换时,会发出此信号。
【信号】void pointsReplaced()
当所有点都被其他点替换时,会发出此信号。
(只在 void replace(const QList<QPointF> &points) 中调用)
12、void append(qreal x, qreal y)
void append(const QPointF &point)
void append(const QList<QPointF> &points)
将数据点添加到曲线中。
13、const QPointF & at(int index)
返回曲线内部点中由 index 指定的位置处的数据点。
14、QPair<qreal, qreal> bestFitLineEquation(bool &ok)
返回一对数字,其中第一个数字是斜率因子,第二个数字是最佳拟合线的线性函数的截距。
这些因子是使用最小二乘法基于传递给曲线的点计算的。
参数 ok 用于报告结果。
15、void clearPointConfiguration(const int index)
删除位于索引处的点的配置并恢复从曲线设置派生的默认外观。
void clearPointConfiguration(const int index, const QXYSeries::PointConfiguration key)
从索引点删除由 key 标识的配置属性,并恢复从曲线设置派生的默认外观。
删除配置类型,允许将该配置属性呈现为曲线属性中指定的默认值。
void clearPointsConfiguration()
删除曲线中所有点的配置并恢复从曲线设置派生的默认外观。
void clearPointsConfiguration(const QXYSeries::PointConfiguration key)
从所有点中删除由 key 标识的配置属性,并恢复从曲线设置派生的默认外观。
void setPointConfiguration(const int index, const QHash<QXYSeries::PointConfiguration, QVariant> &configuration)
使用所需配置自定义位于索引处的点的外观。可以更改每个点外观的各个属性。
QLineSeries *series = new QLineSeries();
series->setName("Customized serie");
series->setPointsVisible(true);
*series << QPointF(0, 6) << QPointF(2, 4) << QPointF(3, 6) << QPointF(7, 4) << QPointF(10, 5)
<< QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3)
<< QPointF(20, 2);
QChart *chart = new QChart();
chart->addSeries(series);
chart->createDefaultAxes();
QHash<QXYSeries::PointConfiguration, QVariant> conf;
conf[QXYSeries::PointConfiguration::Color] = QColor(Qt::red);
conf[QXYSeries::PointConfiguration::Size] = 8;
conf[QXYSeries::PointConfiguration::LabelVisibility] = true;
series->setPointConfiguration(4, conf);
conf.remove(QXYSeries::PointConfiguration::LabelVisibility);
series->setPointConfiguration(6, conf);
一个默认的 QLineSeries,它有 10 个点,并且更改了两个点的配置。两个变化点都是红色的,并且明显比其他点大,外观来自曲线。 默认情况下,点没有标签,但索引 4 处的点有标签。
void setPointConfiguration(const int index, const QXYSeries::PointConfiguration key, const QVariant &value)
自定义点配置。
void setPointsConfiguration(const QHash<int, QHash<QXYSeries::PointConfiguration, QVariant> > &pointsConfiguration)
允许自定义由 pointsConfiguration 指定的多个点的配置。
QHash<int, QHash<QXYSeries::PointConfiguration, QVariant> > pointsConfiguration()
返回一个map,其中点的索引作为键,点的配置作为值。
QHash<QXYSeries::PointConfiguration, QVariant> pointConfiguration(const int index)
返回表示索引点配置的map。
16、void colorBy(const QList<qreal> &sourceData, const QLinearGradient &gradient = QLinearGradient())
根据传递的值列表设置点的颜色。sourceData 中的值被排序并映射到渐变。
如果该曲线附加了 QColorAxis,则将使用来自该轴的渐变。
void sizeBy(const QList<qreal> &sourceData, const qreal minSize, const qreal maxSize)
根据传递的值列表设置点的大小。sourceData 中的值被排序并映射到 minSize 和 maxSize 之间的点大小。
如果 sourceData 长度小于曲线中的点数,则曲线末尾的点的大小将保持不变。
17、int count()
返回曲线中的数据点数。
18、void deselectAllPoints()
取消选择曲线中的所有点。
void deselectPoint(int index)
取消选择给定索引处的点。
void deselectPoints(const QList<int> &indexes)
将列表中传递的多个点标记为取消选择。
bool isPointSelected(int index)
索引处的点是否选定。
void selectAllPoints()
将曲线中的所有点标记为选中。
void selectPoint(int index)
将索引处的点标记为选中。
void selectPoints(const QList<int> &indexes)
将列表中点标记为选中。
QList<int> selectedPoints()
返回标记为选中的点索引列表。无论点的可见性如何,选定的点都是可见的。
void setPointSelected(int index, bool selected)
将给定索引处的点标记为选中或取消选中,由 selected 指定。
如果指定了选定的颜色,则使用选定的颜色绘制选定的点。
void toggleSelection(const QList<int> &indexes)
将给定索引处的点的选择状态更改为相反的状态。
19、void insert(int index, const QPointF &point)
在 index 指定的位置插入曲线中的数据点。
20、QList<QPointF> points()
返回曲线中的点。
21、const QImage & selectedLightMarker()
void setSelectedLightMarker(const QImage &selectedLightMarker)
用于在选定曲线的点上绘制标记的图像。
默认值为 QImage(),这意味着通常的 lightMarker() 将被绘制。
22、QXYSeries & operator<<(const QPointF &point)
QXYSeries & operator<<(const QList<QPointF> &points)
用于将数据点添加到曲线的流运算符。
QLineSeries
一、描述
折线图,继承自 QXYSeries,将信息显示为由直线连接的一系列数据点。
QSplineSeries
一、描述
曲线图。继承自 QLineSeries 。储存了绘所需的数据点和线段控制点。数据变化时会自动计算控制点。
QScatterSeries
散点图,继承自 QXYSeries。散点数据在图表上显示为点的集合。 对于每个点,指定两个值来确定其在水平轴和垂直轴上的位置。
二、类型成员
1、enum QScatterSeries::MarkerShape:此枚举值描述了渲染标记项时使用的形状。
- MarkerShapeCircle:圆。这是默认值。
- MarkerShapeRectangle:矩形。
- MarkerShapeRotatedRectangle:旋转的矩形。
- MarkerShapeTriangle:三角形。
- MarkerShapeStar:星形。
- MarkerShapePentagon:五边形。
三、属性成员
1、borderColor : QColor | void borderColorChanged(QColor color)
绘制标记边框的颜色。
2、brush : QBrush
绘制标记的画刷。画刷可以是可以使用 QPainterPath 创建的图像。
3、color : QColor | void colorChanged(QColor color)
填充标记的颜色。
4、markerShape : MarkerShape | void markerShapeChanged(QScatterSeries::MarkerShape shape)
渲染曲线中的点的标记的形状。
5、markerSize : qreal | void markerSizeChanged(qreal size)
用于渲染曲线中的点的标记的大小。