一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万
QCharts绘制柱状图,柱高和y轴数据刻度不匹配
复制代码
 1 //在项目pro文件中添加以下内容
 2  QT       += charts
 3  
 4  //在.h文件中添加以下内容,注意:需要将头文件及命名空间添加到ui命名空间之前,否则将提示错误
 5  #include <QtCharts/QChartView>
 6  #include <QtCharts/QBarSeries>
 7  #include <QBarCategoryAxis>
 8  #include <QValueAxis>
 9  #include <QBarSet>
10  
11  QT_CHARTS_USE_NAMESPACE
12 
13 创建项目,在main.cpp中添加以下内容:
14 
15  #include "mainwindow.h"
16  #include <QApplication>
17  
18  int main(int argc, char *argv[])
19  {
20   QApplication a(argc, argv);
21  QBarSet *set0 = new QBarSet("警告");
22  QBarSet *set1 = new QBarSet("报警");
23  
24  *set0 << 1 << 2 << 3 << 5 << 4;
25  *set1 << 2 << 4 << 0 << 5 << 4;
26  
27  QBarSeries *series = new QBarSeries();
28  series->append(set0);
29  series->append(set1);
30  
31  QChart *chart = new QChart();
32  //chart->addSeries(series);           /************* 该语句应当放置此位置************/
33  
34  QStringList dateList;
35  dateList << "11" << "12" << "13" << "14" << "15";
36  QBarCategoryAxis *axisX = new QBarCategoryAxis();
37  axisX->append(dateList);
38  axisX->setTitleText("日期");
39  
40  QValueAxis *axisY = new QValueAxis();
41  axisY->setRange(0,10);
42  axisY->setLabelFormat("%d");
43  axisY->setTickCount(6);
44  axisY->setTitleText("次数");
45  
46  chart->setAxisX(axisX, series);                  //设置X坐标轴
47  chart->setAxisY(axisY, series);                  //设置Y坐标轴
48  
49  chart->legend()->setVisible(true);              //设置图例为显示状态
50  chart->legend()->setAlignment(Qt::AlignBottom); //设置图例的显示位置在底部
51  
52  chart->addSeries(series);                 /************* 问题所在************/
53  chart->setTitle("火情记录");
54  chart->setAnimationOptions(QChart::SeriesAnimations);
55  
56  QChartView *chartView = new QChartView(chart);
57  chartView->setRenderHint(QPainter::Antialiasing);
58  
59  MainWindow w;
60  w.setCentralWidget(chartView);
61  w.show();
62  
63  return a.exec();
64  }
复制代码

程序运行结果如下:

细心的朋友可以发现,明明数据值最大为5,但是柱状图的最高值为10,这就是问题所在

如果想要解决以上问题,需要将chart对象绑定数据序列放在创建坐标轴之前,修改后程序运行效果如下:

 问题解决

posted on   一杯清酒邀明月  阅读(224)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-04-10 Qt 数据的进制转换:二进制、十进制和十六进制
2023-04-10 Qt 16进制和10进制之间的转换
2020-04-10 Qt error C2059: 语法错误:“常量”、 error C2238: 意外的标记位于“;”之前 、error: C4430: 缺少类型说明符 - 假定为 int
2020-04-10 Qt 多种方式读写二进制文件
2020-04-10 对颜色空间YUV、RGB的理解
2020-04-10 Qt/C++ 给程序执行计时_clock()
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示