qcustomplot 绘制散点图 不同颜色 ,给出完整的qt代码, 稳定版本的qcustomplot ,不要写出现编译不过,并给出qcustomplot。hde
时间: 2024-10-24 18:03:46 浏览: 77
QCustomPlot是一个强大的Qt C++图形库,用于创建高质量的定制图表。下面是一个简单的例子,展示如何在QCustomPlot中绘制散点图,并为不同的数据点分配不同的颜色。请注意,这个示例假设你已经包含了`qcustomplot.h`文件,并且已经在项目中链接了正确的库。
```cpp
#include <QApplication>
#include "qcustomplot.h"
class MyData {
public:
int x;
int y;
QColor color;
MyData(int x, int y, QColor color) : x(x), y(y), color(color) {}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QCustomPlot plot;
plot.setInterpolatedAntialiasing(true); // 使用抗锯齿平滑线条
// 创建数据
MyData data[] = { {0, 5, Qt::red}, {1, 7, Qt::green}, {2, 3, Qt::blue}, ... }; // 更多数据自行添加
// 创建并设置绘图系列
QCPScatterSeries *scatterSeries = new QCPScatterSeries();
for (const auto& d : data) {
scatterSeries->append(d.x, d.y);
scatterSeries->setDataColor(d.x, d.color); // 根据x值设置颜色
}
plot.addSeries(scatterSeries);
plot.setAxisXRange(0, std::max({d.x for d in data}));
plot.setAxisYRange(0, std::max({d.y for d in data}));
// 设置X轴和Y轴
QCPAxis *axisX = new QCPAxis(QCPAxis::Bottom, &plot);
axisX->setLabel("X Label");
axisX->setTickInterval(1);
plot.setAxis(axisX);
QCPAxis *axisY = new QCPAxis(QCPAxis::Left, &plot);
axisY->setLabel("Y Label");
axisY->setTickInterval(1);
plot.setAxis(axisY);
// 显示图表
plot.show();
return app.exec();
}
```
阅读全文