我是靠谱客的博主 俊秀手链,最近开发中收集的这篇文章主要介绍QCustomPlot 属性介绍QCustomPlot 属性介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

QCustomPlot 属性介绍

图表曲线作为一种直观分析的工具,在软件开发中应用的非常广泛,QCustomPlot是Qt的第三方类库,下面整理下QCustomPlot常用的属性。

日期作者版本
2021年7月5日Mister HV1.0

文章目录

  • QCustomPlot 属性介绍
      • 1. 创建配置绘图表
      • 2. 设置线的样式
      • 3. 设置画布曲线的颜色、抗锯齿、名称
      • 4. 添加、清空、刷新数据
      • 5. 设置散点样式
      • 6. 设置 y 轴属性(x轴同理)
      • 7. 设置背景颜色、设置矩形轴框内的背景颜色
      • 8. 设置刻度标签类型(默认是QCPAxisTickerFixed坐标)
        • 1. QCPAxisTickerDateTime 日期时间坐标轴
        • 2. QCPAxisTickerText 文本刻度标签
        • 3. QCPAxisTickerLog log对数刻度标签


1. 创建配置绘图表

QCPGraph *graph1 = customPlot->addGraph();
//添加一个图表

2. 设置线的样式

graph1->setLineStyle(QCPGraph::lsNone);
//无线
graph1->setLineStyle(QCPGraph::lsLine);
//有线

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

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

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

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

5. 设置散点样式

graph1->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle,
QPen(Color, LineWidth),
QBrush(Color), DotWidth));//设置圆点的样式,还有其他样式选择,如正方形QCPScatterStyle::ssSquare。

6. 设置 y 轴属性(x轴同理)

ui->customPlot->xAxis->setLabel("x");
//x轴标签
ui->customPlot->yAxis->setLabel("y");
//y轴标签
ui->customPlot->yAxis->setLabelColor(Color);//设置y轴标签颜色
ui->customPlot->yAxis->setLabelFont("微软雅黑");
//y轴标题 字体
ui->customPlot->yAxis->setVisible(true);
//隐藏y轴
ui->customPlot->yAxis->setRange(0, 2);
//设置y轴坐标范围
ui->customPlot->yAxis->setAutoTickCount(8);//设置y轴刻度线个数
ui->customPlot->yAxis->->setTickLength(5, 0);//设置x轴刻度线的长度
ui->customPlot->yAxis->setSubTickLength(2, 0);//设置x轴子刻度线长度
ui->customPlot->yAxis->setTickPen(QPen(Color,Width));//设置y轴刻度颜色和大小
ui->customPlot->yAxis->setSubTickPen(QPen(Color, Width));//设置y轴子刻度线的颜色和大小
ui->customPlot->xAxis->setAutoTicks(true);//设置x轴自动刻度线

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

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

8. 设置刻度标签类型(默认是QCPAxisTickerFixed坐标)

1. QCPAxisTickerDateTime 日期时间坐标轴

customPlot->setInteraction(QCP::iRangeDrag, true);
customPlot->setInteraction(QCP::iRangeZoom, true);//设置可拖动
QDateTime dateTime = QDateTime::currentDateTime();
double
now = dateTime.toTime_t();//当前时间转化为秒
//生成时间刻度对象
QSharedPointer<QCPAxisTickerDateTime> dateTimeTicker(new QCPAxisTickerDateTime);
customPlot->xAxis->setTicker(dateTimeTicker);
//dateTimeTicker->setDateTimeSpec(Qt::UTC);//设施世界时间,即不加上时区的时间
dateTimeTicker->setTickCount(12);//设置大刻度
dateTimeTicker->setTickStepStrategy(QCPAxisTicker::tssMeetTickCount);//可读性
customPlot->xAxis->setSubTicks(false);//隐藏子刻度
customPlot->xAxis->setRange(now, now+3600*24);//x轴范围,从当前时间起往后推24小时

在这里插入图片描述

2. QCPAxisTickerText 文本刻度标签

//画柱状图
QCPBars *regen = new QCPBars(customPlot->xAxis, customPlot->yAxis);
regen->setAntialiased(false); // 提供更多的清晰度,像素对齐的条形边框 抗锯齿
regen->setStackingGap(1);
regen->setName("Regenerative");
regen->setPen(QPen(QColor(0, 168, 140).lighter(130)));
regen->setBrush(QColor(0, 168, 140));
// regen->moveAbove(nuclear);
QVector<double> ticks;
QVector<QString> labels;
ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7;
labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada";
QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
textTicker->addTicks(ticks, labels);
customPlot->xAxis->setTicker(textTicker);
customPlot->xAxis->setTickLabelRotation(60);
customPlot->xAxis->setSubTicks(false);
customPlot->xAxis->setTickLength(0, 4);
customPlot->xAxis->setRange(0, 8);
customPlot->xAxis->setTickPen(QPen(Qt::white));
// 准备y轴:
customPlot->yAxis->setRange(0, 12.1);
customPlot->yAxis->setPadding(5); // 左边框多留一点空间
customPlot->yAxis->setLabel("Power Consumption innKilowatts per Capita (2007)");
//customPlot->yAxis->setBasePen(QPen(Qt::white));
customPlot->yAxis->setTickPen(QPen(Qt::white));
customPlot->yAxis->setSubTickPen(QPen(Qt::white));
// 添加数据:
QVector<double>
regenData;
regenData
<< 0.06*10.5 << 0.05*5.5 << 0.04*5.5 << 0.06*5.8 << 0.02*5.2 << 0.07*4.2 << 0.25*11.2;
regen->setData(ticks, regenData);

在这里插入图片描述

3. QCPAxisTickerLog log对数刻度标签

QSharedPointer<QCPAxisTickerLog> logTicker(new QCPAxisTickerLog);
customPlot->xAxis->setTicker(logTicker);
customPlot->xAxis->setScaleType(QCPAxis::stLogarithmic);
customPlot->xAxis->setRange(0,250);
logTicker->setLogBase(10);
QVector<double> x2(250), y2(250);
for (int i=0; i<250; ++i)
{
x2[i] = i;
y2[i] = log(i);
}
customPlot->addGraph(customPlot->xAxis, customPlot->yAxis);
customPlot->graph(0)->setData(x2, y2);

在这里插入图片描述

QCustomPlot 刻度标签
QCustomPlot 图形

最后

以上就是俊秀手链为你收集整理的QCustomPlot 属性介绍QCustomPlot 属性介绍的全部内容,希望文章能够帮你解决QCustomPlot 属性介绍QCustomPlot 属性介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部