QT barchart将数据转化成条形图

1.在工程文件.pro中加入

QT       += charts

2.需要的头文件

#include <QChart>

#include <QBarSet>

#include <QBarSeries>

3.创建集合并向它们追加数据

QBarSet *set0 = new QBarSet("Jane");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;

4.创建 series结合并且添加barsets

QBarSeries *series = new QBarSeries();
series->append(set0);

5.创建chart,并且添加series

QChart *chart = new QChart();
 chart->addSeries(series);

6.创建类别轴和类别列表

1 QStringList categories;
2 categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
3  QBarCategoryAxis *axis = new QBarCategoryAxis();
4  axis->append(categories);
5  chart->createDefaultAxes();
6  chart->setAxisX(axis, series);

7.显示图例

chart->legend()->setVisible(true);
 chart->legend()->setAlignment(Qt::AlignBottom);

8.创建画布

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

显示代码

 1 barChart::barChart(QWidget *parent) :
 2     QWidget(parent),
 3     ui(new Ui::barChart)
 4 {
 5     ui->setupUi(this);
 6     QBarSet* set0 = new QBarSet("jane");
 7     QBarSet* set1 = new QBarSet("jone");
 8     QBarSet* set2 = new QBarSet("mary");
 9     QBarSet* set3 = new QBarSet("Alsex");
10     QBarSet* set4 = new QBarSet("summer");
11     *set0<<1<<2<<3<<4<<5;
12     *set1<<5<<9<<2<<0<<3;
13     *set2<<3<<7<<1<<4<<2;
14     *set3<<6<<1<<9<<8<<3;
15     *set4<<0<<2<<6<<8<<1;
16     QBarSeries* barSerise = new QBarSeries();
17     barSerise->append(set0);
18     barSerise->append(set1);
19     barSerise->append(set2);
20     barSerise->append(set3);
21     barSerise->append(set4);
22     QChart* chart = new QChart();
23     chart->addSeries(barSerise);
24     chart->setTitle("Simple barchart example");
25     chart->setAnimationOptions(QChart::SeriesAnimations);
26
27     QStringList str;
28     str<< "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
29     QBarCategoryAxis* axisx = new QBarCategoryAxis();
30     axisx->append(str);
31     chart->createDefaultAxes();
32     chart->setAxisX(axisx);
33
34     chart->legend()->setVisible(true);
35     chart->legend()->setAlignment(Qt::AlignBottom);
36
37     QChartView* chartView = new QChartView(chart);
38     chartView->setRenderHint(QPainter::Antialiasing);
39
40     QHBoxLayout *layout = new QHBoxLayout();
41     layout->setContentsMargins(0, 0, 0, 0);
42     layout->addWidget(chartView);
43     setLayout(layout);
44
45 }
46
47 barChart::~barChart()
48 {
49     delete ui;
50 }

运行结果

原文地址:https://www.cnblogs.com/wxh-53919/p/9301047.html

时间: 2024-10-07 11:49:29

QT barchart将数据转化成条形图的相关文章

JSON数据转化成模型

JSON数据转化成模型 // 1.创建url NSURL *url = kSUNUrl(@"video"); // 2.创建request NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 3.发送请求数据 NSOperationQueue *queue = [NSOperationQueue mainQueue]; [NSURLConnection sendAsynchronousRequest:request

把json数据转化成对象

把json数据转化到一个对象中,再用对象直接调用 1 package com.lxj.register; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.net.MalformedURLException; 7 import java.net.URL; 8 9 import net.sf.json.JSONObjec

python 将一列数据转化成多行数据

import xlrd import xlwt import numpy as np import sys def write(): data = xlrd.open_workbook('data.xls') file = xlwt.Workbook() for si,sheet in enumerate(data.sheets()): values = sheet.col_values(0) if values: print(values) table = file.add_sheet('sh

json数据转化成模型对象

具体思想: 1.将模型对象的属性名和属性类型的创建规则  应与json数据的key-value一一对应. 2.在模型对象初始化之前,给模型对象的每一个属性名赋默认的值.比较 NSString类型默认赋值@"",NSNumber默认赋值 [NSNull null] 3.以json数据的key作为属性名,value作为值给模型数据一一赋值. 有三个重要的方法: // 获取类的所有Property 1. objc_property_t *class_copyPropertyList(Clas

将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)

表单序列化类型的数据是指url传递的数据的格式,形如"key=value&key=value&key=value"这样的key/value的键值对.一般来说使用jQuery的$.fn.serialize函数能达到这样的效果.如何将这样的格式转化为对象? 我们知道使用jQuery的$.fn.serializeArray函数得到的是一个如下结构的对象 [ { name: "startTime" value: "2015-12-02 00:00:

json数据转化成实体 存到数据库.

直接看步骤吧 1.一般我们会调用别人给的webservice获取一个字符串数据.如果为String data="xxxxxxxxxx";  这个data事实上就是样例EnterpriseInfoEntity 的多条记录 2.  把data转换为JSONArray JSONArray arr =new JSONArray(); arr = JSONArray.fromObject(data); 3.  我们是调用JSONObject 的toBean方法.讲这条数据相应到我们写的entit

单列多值数据转化成多行在SQLSERVER中的实现

前两天看到一篇博文讲如何在ORACLE中将一行含有单列多值的数据转换成多行单列,具体问题如下. ID      NUMBER1       137xxxx,138xxxx取出来成ID    NUMBER1     137xxxx1     138xxxx 原文给出的解法可参见http://www.cnblogs.com/myjoan/p/4139348.html, 另外回复里貌似给了更简洁的写法. 因为好几年没碰ORACLE了,最近几年都是用微软的SQL SEVER,所以就想如果是SQL SER

将数据库读出来的数据转化成集合

public class DynamicBuilder<T> { private PropertyInfo[] properties; private DynamicBuilder() { } public T Build(IDataRecord reader) { T result = (T)Activator.CreateInstance(typeof(T)); for (int i = 0; i < reader.FieldCount; i++) { if (properties[

yii2得到的数据对象转化成数组

yii2得到的数据对象转化成数组需要用到asArray().1.Customer::find(['id' => $id])->asArray()->one();2.$model = Customer::findModel($id); $model->attributes;