QCustomPlot基础教程(四)——利用QCustomPlot绘制柱状图

目录

    • 一、基础柱状图绘制
    • 二、扩展1——横向柱状图的绘制方法

一、基础柱状图绘制

代码示例:


//绘制柱状图
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);

运行结果:

QCustomPlot基础教程(四)——利用QCustomPlot绘制柱状图_第1张图片

二、扩展1——横向柱状图的绘制方法

横向柱状图也很简单,只要设置x轴为y轴,y轴为x轴即可:

QCPAxis *xAxis = ui->customPlot->yAxis;
QCPAxis *yAxis = ui->customPlot->xAxis;

运行结果:
QCustomPlot基础教程(四)——利用QCustomPlot绘制柱状图_第2张图片
参考:https://www.jianshu.com/p/a6d97ff5c647

OK,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~

你可能感兴趣的:(Qt,qt)