Qt使用qcustomplot画柱状图显示每个柱状图的值

QT 用qcustomplot画图(柱状图为例)实现柱状图上显示value
在这里插入图片描述
我在网上找了好多demo但是在customplot中是没有直接的方法显示value。
如果想要在柱状图上显示每个value则需要自己在draw()中自己添加
painter->drawText(x, y);x柱状图的横坐标,y是柱状图的纵坐标(value)。有需要的可以参考下。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
QCustomPlot 是一个用于 Qt 应用程序的图形库,可以方便地绘制各种类型的图表,包括柱状图。要在柱状图显示标签,请按照以下步骤操作: 1. 在 QCustomPlot 上创建一个 QCPBars 对象,该对象代表柱状图。 2. 使用 QCPBars 对象的 addData 方法添加柱状图数据。您可以使用 addData 方法的第二个参数指定每个柱子的名称。 3. 对 QCPBars 对象调用 setAutoFillLabels(false) 方法,以便您可以手动创建标签。 4. 创建一个 QCPItemText 对象,该对象代表标签,并将其添加到 QCustomPlot 上。 5. 设置 QCPItemText 对象的位置和文本。您可以使用 QCPBars 对象的数据范围和轴范围来计算标签的位置。 6. 调用 QCustomPlot 的 replot 方法,以更新绘图。 以下是一个示例代码片段,演示如何在 QCustomPlot显示柱状图标签: ```cpp // 创建柱状图对象 QCPBars *bars = new QCPBars(customPlot->xAxis, customPlot->yAxis); bars->setName("柱状图"); bars->setAutoFillLabels(false); // 禁用自动填充标签 // 添加柱子数据 QVector<double> data; data << 1 << 2 << 3 << 4 << 5; QVector<QString> labels; labels << "A" << "B" << "C" << "D" << "E"; for (int i = 0; i < data.size(); ++i) { bars->addData(i+1, data[i], labels[i]); } // 创建标签对象 QCPItemText *label = new QCPItemText(customPlot); label->setColor(Qt::black); label->setPositionAlignment(Qt::AlignHCenter | Qt::AlignTop); label->position->setType(QCPItemPosition::ptAxisRectRatio); label->position->setCoords(0.5, 0); // 在 x 轴中心上方 label->setText("标签文本"); // 设置标签位置 QCPRange dataRange = bars->dataRange(0); QCPRange valueRange = customPlot->yAxis->range(); double x = (dataRange.lower + dataRange.upper) / 2; double y = valueRange.upper * 0.95; // 离顶部 5% label->position->setAxisRect(customPlot->axisRect()); label->position->setCoords(x, y); // 更新绘图 customPlot->replot(); ``` 以上代码将在柱状图每个柱子上显示一个标签,标签的文本为 A、B、C、D、E,位置在柱子上方。您可以根据需要调整标签的位置和文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值