一、基础柱状图绘制
代码示例:
//绘制柱状图
QCPAxis *xAxis = ui->customPlot->xAxis;//x轴
QCPAxis *yAxis = ui->customPlot->yAxis;//y轴
QCPBars *bars = new QCPBars(xAxis, yAxis); // 使用xAxis作为柱状图的x轴,yAxis作为y轴
bars->setAntialiased(false); // 为了更好的边框效果,关闭抗齿锯
bars->setName("Bars"); // 设置图例
bars->setPen(QPen(QColor(0, 160, 140).lighter(130))); // 设置柱状图的边框颜色
bars->setBrush(QColor(20,68,106)); // 设置柱状图的画刷颜色
QVector<double> ticks;
QVector<QString> labels;
ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7;//轴的范围
labels << "A" << "B" << "C" << "D" << "E" << "F" << "G";//轴的刻度文字显示
QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
textTicker->addTicks(ticks, labels);
xAxis->setTicker(textTicker); // 设置为文字轴
xAxis->setTickLabelRotation(60); // 轴刻度文字旋转60度
xAxis->setSubTicks(false); // 不显示子刻度
xAxis->setTickLength(0, 4); // 轴内外刻度的长度分别是0,4,也就是轴内的刻度线不显示
xAxis->setRange(0, 8); // 设置x轴范围
xAxis->setLabel("x");
xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
yAxis->setRange(0, 12.1); //设置y轴范围
yAxis->setPadding(35); // 轴的内边距
yAxis->setLabel("y");
yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
QVector<double> fossilData;
fossilData << 10 << 9 << 2 << 5 << 7 << 4 << 1;//y轴坐标值
bars->setData(ticks, fossilData);
运行结果:
二、扩展1——横向柱状图的绘制方法
横向柱状图也很简单,只要设置x轴为y轴,y轴为x轴即可:
QCPAxis *xAxis = ui->customPlot->yAxis;
QCPAxis *yAxis = ui->customPlot->xAxis;
运行结果:
参考:https://www.jianshu.com/p/a6d97ff5c647
OK,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~