如何通过qcustomplot 绘制出来的不连续曲线=
时间: 2023-08-14 19:06:06 浏览: 532
在 qcustomplot 中,可以通过添加数据点时使用无效数据来实现绘制不连续曲线的效果。具体步骤如下:
1. 在添加数据点时,使用无效数据来表示曲线的断点。如下所示:
```
// 添加有效数据点
customPlot->addGraph();
customPlot->graph(0)->setData(xData, yData);
// 添加无效数据点
customPlot->graph(0)->addData(invalidData, invalidData);
```
2. 设置无效数据点的样式,使其不显示在曲线上。可以设置该点的线型为 Qt::NoPen,点的大小为 0。如下所示:
```
// 设置无效数据点的样式
customPlot->graph(0)->setScatterStyle(QCPScatterStyle::ssNone);
customPlot->graph(0)->setLineStyle(QCPGraph::lsNone);
```
通过以上步骤,就可以实现在 qcustomplot 中绘制不连续曲线的效果。
相关问题
qcustomplot 绘制不连续的曲线
要绘制不连续的曲线,可以使用QCustomPlot的“空数据”方式。具体步骤如下:
1.创建一个QVector,用于存储数据点的x坐标和y坐标。
2.在不连续的点处,将x和y的值设置为QCPGraph::lsNone,即没有数据。例如:
```
QVector<double> xData, yData;
xData << 1 << 2 << 3 << 4 << 5 << 6;
yData << 1 << 2 << QCPGraph::lsNone << QCPGraph::lsNone << 5 << 6;
graph->setData(xData, yData);
```
在上面的代码中,第三个和第四个点的x和y值被设置为QCPGraph::lsNone,表示这些点没有数据,因此图形将在这些点处中断。
3.将图形的线型设置为QCPGraph::lsLine,以便在不连续的点处绘制线段。
```
graph->setLineStyle(QCPGraph::lsLine);
```
完整代码示例:
```
QVector<double> xData, yData;
xData << 1 << 2 << 3 << 4 << 5 << 6;
yData << 1 << 2 << QCPGraph::lsNone << QCPGraph::lsNone << 5 << 6;
QCPGraph *graph = ui->plot->addGraph();
graph->setData(xData, yData);
graph->setLineStyle(QCPGraph::lsLine);
```
运行代码后,您应该会看到一个在第三个和第四个点中断的曲线图。
希望qcustomplot绘制不连续的曲线
要绘制不连续的曲线,你可以在数据中使用 NaN(不是数字)值来表示断开的点。这些 NaN 值将被忽略,从而在图表中创建不连续的曲线。
下面是一个使用 QCustomPlot 绘制不连续曲线的示例:
```cpp
QVector<double> xData, yData;
// 添加数据
xData << 1 << 2 << 3 << NAN << 5 << 6 << NAN << 8 << 9 << 10;
yData << 1 << 2 << 3 << NAN << 5 << 6 << NAN << 8 << 9 << 10;
// 创建图表对象和曲线对象
QCustomPlot *customPlot = new QCustomPlot();
QCPGraph *graph = customPlot->addGraph();
// 设置数据
graph->setData(xData, yData);
// 设置曲线样式
graph->setLineStyle(QCPGraph::lsLine);
graph->setScatterStyle(QCPScatterStyle::ssCircle);
// 调整轴范围
customPlot->xAxis->setRange(0, 12);
customPlot->yAxis->setRange(0, 12);
// 显示图表
customPlot->replot();
```
在上面的示例中,我们在数据中使用了 NAN 值来表示断开的点。然后,我们使用 `setData` 方法将数据设置为曲线的坐标。最后,我们调整了轴范围并显示了图表。
阅读全文
相关推荐
















