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();
}

運行結果: 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章