只有一个qCustomplot.h头文件可引用,没有其他头文件,QT5.9下,qCustomplot绘制散点有不同的颜色,要完整的代码,我
时间: 2024-10-24 12:05:42 浏览: 26
要在Qt5.9环境下使用qCustomplot绘制带有不同颜色的散点图,你需要首先确保已安装并包含了qCustomplot库。然后,可以使用QCPItemScatter类来创建散点,并通过设置其每个数据点的颜色来实现不同的颜色。
以下是一个简单的例子,展示了如何在qCustomplot中创建一个散点图并为其数据点赋予不同的颜色:
```cpp
#include <QApplication>
#include <QPainter>
#include "qcustomplot.h"
#include "qcpitemscatter.h"
class CustomPlotWidget : public QWidget {
public:
explicit CustomPlotWidget(QWidget *parent = nullptr)
: QWidget(parent), plot(new QCustomPlot(this)) {
// 设置绘图区大小
plot->setMinimumSize(600, 400);
// 创建一个新的Scatter Item
scatter = new QCPItemScatter(plot);
scatter->setData(QVector<QPointF>(), QVector<QColor>()); // 数据点和颜色
// 添加到主视图
plot->insertItem(scatter, Qt::BottomLeftCorner);
// 设置颜色范围
QPen pen;
pen.setColor(Qt::red);
scatter->pen(QCPItemScatter::Index0) = pen; // 例如第一个点用红色
pen.setColor(Qt::green);
scatter->pen(QCPItemScatter::Index1) = pen; // 第二个点用绿色,以此类推...
// 设置散点大小
scatter->setSize(7.0);
// 显示网格线
plot->xAxis->showGrid(true);
plot->yAxis->showGrid(true);
}
private:
QCustomPlot *plot;
QCPItemScatter *scatter;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
CustomPlotWidget widget;
widget.show();
return app.exec();
}
```
在这个例子中,你需要自定义`QVector<QPointF>`存储你的X-Y坐标数据,并相应地填充`QVector<QColor>`来对应颜色。注意,`Index0`, `Index1`等表示的是散点数组的索引,你可以根据需要调整。
阅读全文