QT系列之直方图学习

#include "QtGuiApplication4.h"
#include <QtWidgets/QApplication>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QBarSeries>
#include <QtCharts/QBarSet>
#include <QtCharts/QLegend>
#include <QtCharts/QBarCategoryAxis>
#include <QtCharts/QValueAxis>

QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	QBarSet* set0 = new QBarSet("ok");//声明QBarSet实例
	QBarSet* set1 = new QBarSet("ng");
	//QBarSet* set2 = new QBarSet("Axel");
	//QBarSet* set3 = new QBarSet("Mary");
	//QBarSet* set4 = new QBarSet("Samantha");

	//向QBarSet实例
	*set0 << 11 << 12 << 13 <<14 << 15 << 16;//向set0里不断追加数据
	*set1 << 1 << 1 << 1 << 2 << 1 << 4;
	//*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);


	//设置Char,类似于设计excel直方图的标签和导入数据
	QChart* chart = new QChart();
	chart->addSeries(series);//将serise添加到Char中
	chart->setTitle("24 hour operation situation");//char 的标题设置为
	chart->setAnimationOptions(QChart::SeriesAnimations); //动画在图表中启用


	//定义字符串列表,用于X轴标签
	QStringList categories;
	categories << "8:00~9:00" << "9:00~10:00" << "10:00~11:00" << "11:00~12:00" << "13:00~14:00" << "14:00~15:00";

	//设置X轴参数
	QBarCategoryAxis* axisX = new QBarCategoryAxis();
	axisX->append(categories);//设置X周标签
	chart->addAxis(axisX, Qt::AlignBottom); //将系列标签放到底下
	series->attachAxis(axisX);

	//设置Y轴参数
	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); //在 painter 上设置给定的渲染


	QMainWindow window;  //申明应用窗口的类
	window.setCentralWidget(chartView);//将内容写入窗口
	window.resize(420, 300);//设置窗口初始大小
	window.show();//显示


	return a.exec();
}

运行结果: 

猜你喜欢

转载自blog.csdn.net/seek97/article/details/97392496