QCustomPlot之参数曲线(七)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QCustomPlot之参数曲线(七)相关的知识,希望对你有一定的参考价值。

参考技术A QCPCurve 用于绘制参数方程曲线,常见的参数方程有以下几种:

QCPCurve 与 QCPGraph 的区别在于它引入了第三个坐标 t ,而 QCPGraph 只有x,y两个坐标,这是因为在参数方程曲线中,可能会有多个点对应同个key坐标,而 t 坐标的引入决定了参数方程x,y坐标的顺序,这样就不会混乱

在数据方面, t 坐标在QCPCurve表现为排序键 sortKey , x 坐标表现为主键 mainKey , y 坐标表现为 mainValue ,而在QCPGraph中排序键 sortKey 和主键 mainKey 都是 x 坐标, y 坐标表现为 mainValue

参数方程来自: 伯努利双纽线(无穷大的符号)

QCustomPlot 曲线各种属性详细介绍

文章目录


最近查询customplot文档是否有更新,发现了网上有一个人整理了QCustomPlot经常使用的属性,我也记录转发一遍,方便大家查阅。

参考https://blog.csdn.net/LL58189034/article/details/104342980

1. legend 设置图例字体、大小、是否显示、背景:

 QFont font;
 font.setPixelSize(12);//文字像素大小
 font.setFamily("微软雅黑");//字体
 ui->customPlot->legend->setFont(font);
 ui->customPlot->legend->setVisible(true);//图例是否显示
 ui->customPlot->legend->setBrush(QColor(100, 100, 100, 0))//设置图例背景颜色,可设置透明

2. setLabelFont 设置轴标签的字体、大小、颜色、内容

ui->customPlot->xAxis->setLabelFont(font);//设置X轴的标签字体
ui->customPlot->yAxis->setLabelFont(font);//设置y轴的标签字体
 
ui->customPlot->xAxis->setLabelColor(Color);//设置X轴标签颜色
ui->customPlot->yAxis->setLabelColor(Color);//设置y轴标签颜色
 
ui->customPlot->yAxis->setLabel("X轴数据");//X轴标签内容
ui->customPlot->xAxis->setLabel("Y轴数据");//y轴标签内容

3. setTickLabelFont 设置轴刻度标签的字体、大小、颜色、长度

 ui->customPlot->xAxis->setTickLabelFont(font);//设置x轴刻度标签字体
 ui->customPlot->yAxis->setTickLabelFont(font);//设置y轴刻度标签字体
 
 ui->customPlot->xAxis->setTickLabelColor(Color);//设置x轴刻度标签颜色
 ui->customPlot->yAxis->setTickLabelColor(Color);//设置y轴刻度标签颜色
 
ui->customPlot->xAxis->->setTickLength(5, 0);//设置x轴刻度线的长度
ui->customPlot->xAxis->setSubTickLength(2, 0);//设置x轴子刻度线长度

4. setTickLabelType 设置刻度标签类型

ui->customPlot->xAxis->setTickLabelType(QCPAxis::ltDateTime);//QCPAxis::ltNumber
ui->customPlot->xAxis->setDateTimeFormat("mm:ss");//设置轴数据时间格式

5. setBasePen 设置基准轴线颜色、大小

ui->customPlot->xAxis->setBasePen(QPen(Color, Width));//设置x轴基准线颜色和大小
ui->customPlot->yAxis->setBasePen(QPen(Color, Width));//设置y轴基准线颜色和大小

6. setTickPen 设置轴刻度线颜色和大小

ui->customPlot->xAxis->setTickPen(QPen(Color,Width ));//设置x轴刻度颜色和大小
ui->customPlot->yAxis->setTickPen(QPen(Color,Width));//设置y轴刻度颜色和大小

7. setSubTickPen 设置子刻度线颜色和大小

ui->customPlot->xAxis->setSubTickPen(QPen(Color, Width));//设置x轴子刻度线的颜色和大小
ui->customPlot->yAxis->setSubTickPen(QPen(Color, Width));//设置y轴子刻度线的颜色和大小

8. grid 设置栅格线颜色、大小、设置零位线的颜色、大小

ui->customPlot->xAxis->grid()->setPen(QPen(Color, Width));//设置x轴的栅格线的颜色和大小
ui->customPlot->yAxis->grid()->setPen(QPen(Color, Width));//设置y轴的栅格线的颜色和大小
 
ui->customPlot->xAxis->grid()->setZeroLinePen(QPen(Color, Width));//设置x轴零位线的颜色和大小
ui->customPlot->yAxis->grid()->setZeroLinePen(QPen(Color, Width));//设置y轴零位线的颜色和大小

9. setBackground 设置背景颜色、设置矩形轴框内的背景颜色

ui->customPlot->setBackground(Color);//设置背景颜色
ui->customPlot->axisRect()->setBackground(Color);//设置矩形轴框内的背景颜色

10. 设置画布曲线的颜色、抗锯齿、名称

 QPen pen;
 pen.setWidth(2);//曲线的粗细
 pen.setColor(Qt::red);
 ui->customPlot->graph(0)->setPen(pen);//曲线颜色设置
 ui->customPlot->graph(0)->setAntialiasedFill(true);//设置抗锯齿
 
 ui->customPlot->->graph(0)->setName("名称");//设置画布曲线名称

11. 设置自动刻度属性

ui->customPlot->xAxis->setAutoTicks(true);//设置x轴自动刻度线
ui->customPlot->xAxis->setAutoTickLabels(true);//设置y轴自动刻度线
 
ui->customPlot->xAxis->setAutoTickStep(true);//设置x轴自动刻度步长
ui->customPlot->yAxis->setAutoTickStep(true);//设置y轴自动刻度步长
 
ui->customPlot->xAxis->setTickStep(1);//设置x轴刻度步长
ui->customPlot->yAxis->setTickStep(1);//设置y轴刻度步长
 
ui->customPlot->rescaleAxes();//这个针对x,y轴双轴
ui->customPlot->rescaleKeyAxis();//这个针对x轴自动刻度调整
ui->customPlot->rescaleValueAxis();//这个针对y轴自动刻度调整

12. 设置范围

ui->customPlot->xAxis->setRange(0, 8, Qt::AlignLeft);//设置x轴范围
ui->customPlot->yAxis->setRange(0, 1024);//设置y轴范围
 
ui->customPlot->yAxis->setAutoTickCount(8);//设置y轴刻度线个数
 
ui->customPlot->xAxis->setVisible(false);//设置x轴是否显示
ui->customPlot->yAxis->setVisible(false);//设置y轴是否显示

13. 设置图例的位置

ui->customPlot->xAxis->axisRect()->insetLayout()->setInsetAlignment(0, 
							Qt::AlignBottom | 
							Qt::AlignRight);//设置图例位置位右下角

14. 设置离散样式

//设置圆点的样式,还有其他样式选择
ui->widgetPlot->graph(0)->setScatterStyle(
        QCPScatterStyle(QCPScatterStyle::ssCircle,
                        QPen(Color, LineWidth),
                        QBrush(Color), DotWidth));

15. 添加、清空、刷新数据

//可以输入单点、也可以多点数据同时传入
ui.customPlot->graph(0)->addData(key,value);
//清空数据
ui.customPlot->graph(0)->data().data()->clear();
//刷新
ui.customPlot->replot();

16. 轴区域设置成矩形盒区域样式

ui->customPlot->axisRect()->setupFullAxesBox();

17. 设置轴区域可拖动、可缩放、可选中图例、可选中轴等

ui->customPlot->setInteractions(QCP::iRangeDrag | 
								QCP::iRangeZoom | 
								QCP::iSelectAxes | 
								QCP::iSelectLegend | 
								QCP::iSelectPlottables);

以上是关于QCustomPlot之参数曲线(七)的主要内容,如果未能解决你的问题,请参考以下文章

Qwt 替代品

Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)

Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)

Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)

Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)

Anycubic Vyper 3D打印机串口屏改造开源项目之QT温度曲线显示