实例一,基本柱状图型
注意的点:必须使用命名空间:QT_CHARTS_USE_NAMESPACE
如图:
代码:
#include <QApplication>
#include <QMainWindow>
#include <QChartView>
#include <QChart>
#include <QBarSet>
#include <QStackedBarSeries>
#include <QBarCategoryAxis>
#include <QValueAxis>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QBarSet *bar = new QBarSet("Bar");;
*bar<<50<<40<<100<<60<<80<<60<<80<<89<<45<<30;
QStackedBarSeries *series = new QStackedBarSeries();
series->append(bar);
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("学生成绩展示");
chart->setAnimationOptions(QChart::SeriesAnimations);
/* 分类轴 */
QStringList strlist = {"小米","小红","小张","小李","小明","小刘","小杨","小翠","小王","小胖"};
QBarCategoryAxis *axisX = new QBarCategoryAxis();
axisX->append(strlist);
axisX->setTitleText("姓名");
chart->addAxis(axisX,Qt::AlignBottom);
QValueAxis *axisY = new QValueAxis();
axisY->setRange(0,100);
axisY->setTitleText("分数");
chart->addAxis(axisY,Qt::AlignLeft);
series->attachAxis(axisX);
series->attachAxis(axisY);
/* 图例 */
chart->legend()->setVisible(false); // 是否显示
chart->legend()->setAlignment(Qt::AlignBottom); // 显示位置
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
QMainWindow window;
window.setWindowTitle("柱状图表展示实例");
window.setCentralWidget(chartView);
window.resize(600,300);
window.show();
return a.exec();
}
实例二,堆叠图柱状图型
注意的点:必须使用命名空间:QT_CHARTS_USE_NAMESPACE
如图:
代码:
#include <QApplication>
#include <QMainWindow>
#include <QChartView>
#include <QChart>
#include <QBarSet>
#include <QStackedBarSeries>
#include <QBarCategoryAxis>
#include <QValueAxis>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QBarSet *barH = new QBarSet("最高气温");
QBarSet *barL = new QBarSet("最低气温");
*barH << -22 << -10 << -9.3 << -17.0 << -15.6 << -8.0
<< -6.0 << -11.8 << -9.7 << -12.8 << -23.0 << -28.0;
*barL << 11.9 << 12.8 << 18.5 << 26.5 << 32.0 << 34.8
<< 38.2 << 34.8 << 29.8 << 20.4 << 15.1 << 11.8;
QStackedBarSeries *series = new QStackedBarSeries();
series->append(barL);
series->append(barH);
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("2022年气温记录");
chart->setAnimationOptions(QChart::SeriesAnimations);
/* 分类轴 */
QStringList strlist = {
"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"};
QBarCategoryAxis *axisX = new QBarCategoryAxis();
axisX->append(strlist);
axisX->setTitleText("月份");
chart->addAxis(axisX,Qt::AlignBottom);
QValueAxis *axisY = new QValueAxis();
axisY->setRange(-30,40);
axisY->setTitleText("温度");
chart->addAxis(axisY,Qt::AlignLeft);
series->attachAxis(axisX);
series->attachAxis(axisY);
/* 图例 */
chart->legend()->setVisible(false); // 是否显示
chart->legend()->setAlignment(Qt::AlignBottom); // 显示位置
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
QMainWindow window;
window.setWindowTitle("柱状图表展示实例");
window.setCentralWidget(chartView);
window.resize(600,300);
window.show();
return a.exec();
}
实例三,堆叠图柱状图型
注意的点:必须使用命名空间:QT_CHARTS_USE_NAMESPACE
如图:
代码:
#include <QApplication>
#include <QMainWindow>
#include <QChartView>
#include <QChart>
#include <QBarSet>
#include <QStackedBarSeries>
#include <QBarCategoryAxis>
#include <QValueAxis>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QBarSet *barYW = new QBarSet("语文");
QBarSet *barSX = new QBarSet("数学");
QBarSet *barYY = new QBarSet("英语");
QBarSet *barZH = new QBarSet("综合");
*barYW<<12<<10<<22<<16<<30<<12<<15<<17<<9<<5;
*barSX<<18<<6<<18<<12<<20<<22<<25<<7<<12<<15;
*barYY<<14<<16<<20<<10<<10<<19<<12<<13<<19<<25;
*barZH<<9<<4<<5<<8<<10<<12<<19<<13<<9<<5;
QStackedBarSeries *series = new QStackedBarSeries();
series->append(barYW);
series->append(barSX);
series->append(barYY);
series->append(barZH);
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("10个班级四科成绩90分-150分学生数目");
chart->setAnimationOptions(QChart::SeriesAnimations);
/* 分类轴 */
QStringList strlist = {
"1班", "2班", "3班", "4班", "5班", "6班", "7班", "8班", "9班", "10班"};
QBarCategoryAxis *axisX = new QBarCategoryAxis();
axisX->append(strlist);
axisX->setTitleText("班级");
chart->addAxis(axisX,Qt::AlignBottom);
QValueAxis *axisY = new QValueAxis();
axisY->setRange(0,80);
axisY->setTitleText("人数");
chart->addAxis(axisY,Qt::AlignLeft);
series->attachAxis(axisX);
series->attachAxis(axisY);
/* 图例 */
chart->legend()->setVisible(true); // 是否显示
chart->legend()->setAlignment(Qt::AlignBottom); // 显示位置
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
QMainWindow window;
window.setWindowTitle("柱状图表展示实例");
window.setCentralWidget(chartView);
window.resize(600,300);
window.show();
return a.exec();
}