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

运行结果: 

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南叔先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值