首页 > 其他 > 详细

Qt4中学习使用QtCharts绘图四:绘制柱状图

时间:2021-08-08 22:48:36      阅读:23      评论:0      收藏:0      [点我收藏+]

1、实例编写环境

  • 操作系统:Windows 10 企业版
  • 开发工具:Visual Studio 2010 旗舰版
  • 开发环境:Qt4.8.6,QtCharts5.14.1
  • 编程语言:C++

2、实例涉及的内容

? ? ? ? 本实例主要讲解通过QtCharts绘制面积图表,涉及的QtCharts的主要类有如下内容:QBarSet、QBarSeries、QBarCategoryAxis、QValueAxis、QChart、QChartView;

? ? ? ? QBarSet:表示一组条形图。一组条形图包含每个类别的一个数据值。假设set的第一个值属于第一类,第二类属于第二类,以此类推。如果set的值少于类别的值,则假定缺少的值在set的末尾。对于集合中间的缺失值,使用数值0;

? ? ? ? QBarSeries:表示以条形显示的一系列数据。该类的目的是将条形图作为组来绘制,其中同一类别中的条形图是挨个分组的。QBarSeries将数据从集合分组到类别,这些类别由QStringList定义;

? ? ? ? QBarCategoryAxis类用于操作图表的轴,可以设置为显示带有勾号、网格线和阴影的轴线,在刻度之间画出类别;

? ? ? ? QValueAxis类用于操作图表轴,可以设置为显示带有勾号、网格线和阴影的轴线,轴的值绘制到刻度的位置;

? ? ? ? QChart是一个可以在QGraphicscene中显示的控件;

? ? ? ? QChartView是一个可以显示图表的独立控件;

3、实例效果

实例效果如下图:

技术分享图片

4、关键代码片段

    //组织数据//
    QBarSet *set0 = new QBarSet(QString::fromLocal8Bit("简"));
    QBarSet *set1 = new QBarSet(QString::fromLocal8Bit("约翰"));
    QBarSet *set2 = new QBarSet(QString::fromLocal8Bit("艾克斯"));
    QBarSet *set3 = new QBarSet(QString::fromLocal8Bit("玛丽"));
    QBarSet *set4 = new QBarSet(QString::fromLocal8Bit("萨曼莎"));
    *set0 << 1 << 2 << 3 << 4 << 5 << 6;
    *set1 << 5 << 0 << 0 << 4 << 0 << 7;
    *set2 << 3 << 5 << 8 << 13 << 8 << 5;
    *set3 << 5 << 6 << 7 << 3 << 4 << 5;
    *set4 << 9 << 7 << 5 << 3 << 1 << 2;

    QBarSeries *series = new QBarSeries();
    series->append(set0);
    series->append(set1);
    series->append(set2);
    series->append(set3);
    series->append(set4);
    //图形中添加显示数据//
    QChart *chart = new QChart();
    chart->addSeries(series);
    chart->setTitle(QString::fromLocal8Bit("柱状图绘制实例"));
    chart->setAnimationOptions(QChart::SeriesAnimations);

   //坐标轴//
    QStringList categories;
    categories << QString::fromLocal8Bit("1月") << QString::fromLocal8Bit("2月") << QString::fromLocal8Bit("3月")<<QString::fromLocal8Bit("4月")<< QString::fromLocal8Bit("5月")<<QString::fromLocal8Bit("6月");
    QBarCategoryAxis *axisX = new QBarCategoryAxis();
    axisX->append(categories);
    chart->addAxis(axisX, Qt::AlignBottom);
    series->attachAxis(axisX);

    QValueAxis *axisY = new QValueAxis();
    axisY->setRange(0,15);
    chart->addAxis(axisY, Qt::AlignLeft);
    series->attachAxis(axisY);


    //显示图例//
    chart->legend()->setVisible(true);
    chart->legend()->setAlignment(Qt::AlignBottom);

    //图形显示控件//
    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);
    chartView->setRubberBand(QChartView::HorizontalRubberBand);

?5、实例源码获取

? ? ? ? 完整的实例代码,请在在笔者的下载中心搜索下载(查找本博客同名标题资源进行下载)。如有任何发现任何问题或者疑问,可以留言或者联系作者进行反馈哦!源码下载链接:点击下载。

?

?

?

?

?

?

Qt4中学习使用QtCharts绘图四:绘制柱状图

原文:https://blog.51cto.com/u_7265851/3314146

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!