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 曲线各种属性详细介绍
文章目录
- 1. legend 设置图例字体、大小、是否显示、背景:
- 2. setLabelFont 设置轴标签的字体、大小、颜色、内容
- 3. setTickLabelFont 设置轴刻度标签的字体、大小、颜色、长度
- 4. setTickLabelType 设置刻度标签类型
- 5. setBasePen 设置基准轴线颜色、大小
- 6. setTickPen 设置轴刻度线颜色和大小
- 7. setSubTickPen 设置子刻度线颜色和大小
- 8. grid 设置栅格线颜色、大小、设置零位线的颜色、大小
- 9. setBackground 设置背景颜色、设置矩形轴框内的背景颜色
- 10. 设置画布曲线的颜色、抗锯齿、名称
- 11. 设置自动刻度属性
- 12. 设置范围
- 13. 设置图例的位置
- 14. 设置离散样式
- 15. 添加、清空、刷新数据
- 17. 设置轴区域可拖动、可缩放、可选中图例、可选中轴等
最近查询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之参数曲线(七)的主要内容,如果未能解决你的问题,请参考以下文章
Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)
Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)
Qt Widget使用QCustomPlot库实现二维螺旋曲线(螺旋曲线一)