绘制纵向柱状图:
#include <QBarSeries>
#include <QMainWindow>
#include <QBarCategoryAxis>
#include <QValueAxis>
using namespace QtCharts;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStringList dateList = {"Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"};
QStringList timeList = {"0:00", "6:00", "12:00", "18;00"};
QBarSeries *series = new QBarSeries;
for (int i = 0; i < timeList.size(); i++) {
QBarSet *set = new QBarSet(timeList[i]);
for (int j = 0; j < dateList.size(); j++) {
set->append(rand() % 10);
}
series->append(set);
}
QChart *chart = new QChart;
chart->addSeries(series);
chart->setTitle("每刻幸运数字");
QBarCategoryAxis *axisX = new QBarCategoryAxis;
QValueAxis *axisY = new QValueAxis;
axisX->append(dateList);
axisX->setRange(dateList.first(), dateList.last());
axisY->setRange(0, 10);
chart->addAxis(axisX, Qt::AlignBottom);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisX);
series->attachAxis(axisY);
chart->legend()->setVisible(true);//图例显示
chart->legend()->setAlignment(Qt::AlignTop);
QChartView *view = new QChartView;
view->setChart(chart);
view->show();
return a.exec();
}
效果:
绘制横向柱状图:
#include <QApplication>
#include <QChartView>
#include <QBarSet>
#include <QBarSeries>
#include <QHorizontalBarSeries>
#include <QMainWindow>
#include <QBarCategoryAxis>
#include <QValueAxis>
using namespace QtCharts;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStringList dateList = {"Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"};
QStringList timeList = {"0:00", "6:00", "12:00", "18;00"};
QHorizontalBarSeries *series = new QHorizontalBarSeries;
for (int i = 0; i < timeList.size(); i++) {
QBarSet *set = new QBarSet(timeList[i]);
for (int j = 0; j < dateList.size(); j++) {
set->append(rand() % 10);
}
series->append(set);
}
QChart *chart = new QChart;
chart->addSeries(series);
chart->setTitle("每刻幸运数字");
QBarCategoryAxis *axisX = new QBarCategoryAxis;
QValueAxis *axisY = new QValueAxis;
axisX->append(dateList);
axisX->setRange(dateList.first(), dateList.last());
axisY->setRange(0, 10);
chart->addAxis(axisX, Qt::AlignLeft);
chart->addAxis(axisY, Qt::AlignBottom);
series->attachAxis(axisX);
series->attachAxis(axisY);
chart->legend()->setVisible(true);//图例显示
chart->legend()->setAlignment(Qt::AlignTop);
QChartView *view = new QChartView;
view->setChart(chart);
view->show();
return a.exec();
}
效果:
区别:
//纵向柱状图
QBarSeries *series = new QBarSeries ;
chart->addAxis(axisX, Qt::AlignBottom);
chart->addAxis(axisY, Qt::AlignLeft);
//横向柱状图
QHorizontalBarSeries *series = new QHorizontalBarSeries;
chart->addAxis(axisX, Qt::AlignLeft);
chart->addAxis(axisY, Qt::AlignBottom);