178 折線圖-柱形圖-餅狀圖

1.折線圖

  • 1、QChart 類繼承自 QGraphicsWidget,用于管理圖表、圖例和軸。
  • 2、QValueAxis 類專門用來自定義圖表中 X 和 Y 坐標軸。
  • 3、QLineSeries 類專門用于折線圖(曲線)的形式展示數據
//.pro
QT += core  gui charts#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QtCharts>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();//自定義函數實現折線圖void myselfLineSeriesFunc();private:Ui::Widget *ui;
};
#endif // WIDGET_H//.c#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//調用此函數myselfLineSeriesFunc();
}Widget::~Widget()
{delete ui;
}void Widget::myselfLineSeriesFunc()
{//實例化圖表QChart對象QChart * chart = new QChart;chart->setTitle("全球各國軍事增長折線圖");ui->graphicsView->setChart(chart);//設置X坐標QValueAxis * axisX = new QValueAxis;axisX->setTitleText("年份");axisX->setRange(2017,2021);//設置范圍//axisX->setTickCount(6);//這只刻度個數axisX->setLineVisible(true);axisX->setGridLineVisible(true);//設置網格線是否可見//設置Y坐標QValueAxis * axisY = new QValueAxis;axisY->setTitleText("軍事(萬億:美元)");axisY->setRange(2000,10000);//設置范圍axisY->setTickCount(5);//這只刻度個數axisY->setLineVisible(true);axisY->setGridLineVisible(true);//設置網格線是否可見//繪制折線圖,設置序列QLineSeries * sris1 =new QLineSeries;sris1->setName("中國");sris1->setColor(QColor(255,0,0));//設置序列顏色值//添加數據點到序列sris1->append(2017,5000);sris1->append(2018,6500);sris1->append(2019,4900);sris1->append(2020,8000);sris1->append(2021,8900);sris1->append(2022,9000);QLineSeries * sris2 =new QLineSeries;sris2->setName("美國");sris2->setColor(QColor(0,255,0));//設置序列顏色值//添加數據點到序列sris2->append(2017,6500);sris2->append(2018,7300);sris2->append(2019,7500);sris2->append(2020,8000);sris2->append(2021,8700);sris2->append(2022,9200);QLineSeries * sris3 =new QLineSeries;sris3->setName("俄羅斯");sris3->setColor(QColor(0,0,255));//設置序列顏色值//添加數據點到序列sris3->append(2017,4000);sris3->append(2018,8000);sris3->append(2019,7900);sris3->append(2020,8000);sris3->append(2021,8200);sris3->append(2022,9500);//為QChart添加序列chart->addSeries(sris1);chart->addSeries(sris2);chart->addSeries(sris3);//將序列設置到坐標軸上chart->setAxisX(axisX,sris1);chart->setAxisY(axisY,sris1);chart->setAxisX(axisX,sris2);chart->setAxisY(axisY,sris2);chart->setAxisX(axisX,sris3);chart->setAxisY(axisY,sris3);}

?

2.柱形圖

  • 1、QBarSet 類專用于條形圖中的一組條形集。
  • 2、QStackedBarSeries 類在 QChart 中用于創建堆積柱狀圖。
  • 3、QBarCategoryAxis 類用于提供柱狀圖的軸。?
//.pro
QT       += charts#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QChart>
using namespace QtCharts;#include <QBarSet>
#include <QBarSeries>
#include <QBarCategoryAxis>
#include <QChartView>
#include <QValueAxis>
#include <QStackedBarSeries>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H//.c#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);//創建條形集對象QBarSet * ba = new QBarSet("bar");*ba<<560<<710<<599<<688<<701;QStackedBarSeries *sris = new QStackedBarSeries();sris->append(ba);QChart * chart = new QChart();chart->addSeries(sris);chart->setTitle("某某學校實驗班高考成績分數");QStringList strlist = {"小王","小李","小吳","小張","小趙"};//通過QBarCategoryAxis類將類型添加到圖表的軸QBarCategoryAxis * axisX = new QBarCategoryAxis();axisX->append(strlist);axisX->setTitleText("考生姓名");chart->addAxis(axisX,Qt::AlignBottom);//通過QBarCategoryAxis類將類型添加到圖表的軸QValueAxis * axisY = new QValueAxis();axisY->setRange(0,750);axisY->setTitleText("高考總分階梯");chart->addAxis(axisY,Qt::AlignLeft);sris->attachAxis(axisX);sris->attachAxis(axisY);//圖例展示chart->legend()->setVisible(false);//設置繪圖區與圖表邊界chart->legend()->setAlignment(Qt::AlignBottom);//將圖標顯示到圖表視圖區QChartView * chartView = new QChartView(chart);MainWindow w;w.setWindowTitle("高考成績--柱狀圖表展示");w.setCentralWidget(chartView);w.resize(800,500);w.show();return a.exec();
}

3.餅狀圖?

  • 1、QPieSeries 類專用于提供餅圖形狀。
  • 2、QPieSlice 類設置顏色。
//.pro
QT       += charts#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QChart>
#include <QtCharts/QPieSeries>
#include <QtCharts/QPieSlice>
#include <QtCharts/QChartView>
using namespace QtCharts;
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H//.cpp#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);//創建餅狀圖對象QPieSeries *sris =  new  QPieSeries();//新建比例sris->append("70分以下:30%",30);sris->append("70分-85分:40%",40);sris->append("86分-99分:25%",25);sris->append("100分:5%",5);sris->setLabelsVisible();//設置標簽屬性,可見QPieSlice * sred = sris->slices().at(0);QPieSlice * sgree = sris->slices().at(1);QPieSlice * sblue = sris->slices().at(2);QPieSlice * sblack = sris->slices().at(3);sred->setColor(QColor(255,0,0,255));sgree->setColor(QColor(0,255,0,255));sblue->setColor(QColor(0,0,255,255));sblack->setColor(QColor(0,0,0,255));QChart * chart = new QChart();chart->addSeries(sris);chart->setTitle("餅圖形狀--班級考試百分制");QChartView *chartview = new QChartView(chart);MainWindow w;w.setCentralWidget(chartview);w.resize(600,600);w.show();return a.exec();
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41647.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索鄰近奧秘:SKlearn中K-近鄰(KNN)算法的應用

探索鄰近奧秘&#xff1a;SKlearn中K-近鄰&#xff08;KNN&#xff09;算法的應用 在機器學習的世界里&#xff0c;K-近鄰&#xff08;K-Nearest Neighbors&#xff0c;簡稱KNN&#xff09;算法以其簡單直觀而著稱。KNN是一種基本的分類和回歸方法&#xff0c;它的工作原理非常…

Error in onLoad hook: “SyntaxError: Unexpected token u in JSON at position 0“

1.接收頁面報錯 Error in onLoad hook: "SyntaxError: Unexpected token u in JSON at position 0" Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>) 2.發送頁面 &#xff0c;JSON.stringify(item) &#xff0c;將對象轉換為 JSO…

前端JS特效第22集:html5音樂旋律自定義交互特效

html5音樂旋律自定義交互特效&#xff0c;先來看看效果&#xff1a; 部分核心的代碼如下(全部代碼在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>ChimeTime?</title…

【Python】已解決:xml.parsers.expat.ExpatError: no element found: Line 1, column 0

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決&#xff1a;xml.parsers.expat.ExpatError: no element found: Line 1, column 0 一、分析問題背景 在使用Python的xml.parsers.expat模塊解析XML文件時&#xff0c;有時會…

算法011:最大連續的1的個數

最大連續的1的個數. - 備戰技術面試&#xff1f;力扣提供海量技術面試資源&#xff0c;幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/max-consecutive-ones-iii/ 乍一看&#xff0c;這道題很奇怪&#xff0c;什么叫最多翻轉k個0&a…

稀疏之美:在Mojo模型中實現特征的稀疏表示

稀疏之美&#xff1a;在Mojo模型中實現特征的稀疏表示 在機器學習領域&#xff0c;特征的稀疏表示是一種高效的數據編碼方式&#xff0c;尤其適用于具有大量特征和缺失值的數據集。稀疏表示使用特殊的數據結構來存儲和處理數據&#xff0c;從而減少內存占用和提高計算效率。Mo…

vue3+ts實現一個表單組件

1. 創建表單組件 首先&#xff0c;創建一個表單組件&#xff0c;包括姓名、手機號、年齡、學校、性別等基本信息的輸入框&#xff0c;并添加省市區和街道地點的選擇功能。 <template><form submit.prevent"submitForm"><el-form :model"formDa…

遺傳算法求解TSP

一、基本步驟 遺傳算法求解旅行商問題&#xff08;TSP&#xff09;的一般步驟如下&#xff1a; 編碼&#xff1a; 通常采用整數編碼&#xff0c;將城市的訪問順序表示為一個染色體。例如&#xff0c;假設有 5 個城市&#xff0c;編碼為[1, 3, 5, 2, 4]&#xff0c;表示旅行商的…

Leetcode3195. 包含所有 1 的最小矩形面積 I

Every day a Leetcode 題目來源&#xff1a;3195. 包含所有 1 的最小矩形面積 I 解法1&#xff1a;遍歷 設最左、最右、最上、最下的 1 的行號/列號分別為 left、right、top、bottom&#xff0c;則答案為&#xff1a;(right - left 1) * (bottom - top 1)。 代碼&#xf…

新手教學系列——kswapd0 CPU占用100%問題解析與解決

在日常運維中,我們常會遇到一些疑難雜癥,其中kswapd0進程CPU占用100%就是一個常見的問題。通常情況下,這個問題是因為內存耗盡,需要使用到swap空間,可以通過調整swap大小或使用比例來控制磁盤讀寫。然而,今天我要分享的是一個特例,如何在內存并未耗盡且swap使用比例正常…

【STM32項目】基于Stm32搞怪盒子的設計(完整工程資料)

基于stm32搞怪的盒子設計 前言&#xff1a; 最近我看到一個極具創意的搞怪盒子&#xff0c;設計得相當有意思。作為一個熱衷于電子DIY的狂熱愛好者&#xff0c;怎能錯過這樣一個有趣的項目呢&#xff1f;于是&#xff0c;我決定親自動手&#xff0c;設計一個屬于自己的、獨一無…

C語言中關鍵字

C語言中的關鍵字共有32個&#xff0c;這些關鍵字根據其功能可以劃分為以下幾類&#xff1a; 1. 數據類型關鍵字&#xff08;12個&#xff09; char&#xff1a;聲明字符型變量或函數&#xff0c;通常占用1個字節。double&#xff1a;聲明雙精度浮點數變量或函數&#xff0c;占…

C#面:C# 如何使? ActionFilterAttribute?

在C#中&#xff0c;ActionFilterAttribute是一個特性類&#xff0c;用于在控制器的動作方法執行前后添加自定義邏輯。它可以用于實現日志記錄、異常處理、權限驗證等功能。 要使用ActionFilterAttribute&#xff0c;可以按照以下步驟進行操作&#xff1a; 創建一個繼承自Acti…

Apache Seata分布式事務原理解析探秘

本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 前言 fescar發布已有時日&#xff0c;分布式事務一直是業界備受關注的領域&#xff0c;fesca…

【carla】ubuntu安裝carla環境

我們可以通過查看 CARLA 的 GitHub release 頁面來找到最新版本的下載鏈接。 下載 CARLA 壓縮包 訪問 CARLA Releases 頁面&#xff1a; CARLA Releases on GitHub 查找最新版本&#xff1a; 找到最新的版本&#xff0c;點擊下載&#xff0c;第一個壓縮包 3. 解壓 CARLA 包&…

深度學習中的正則化技術 - 引言篇

序言 在深度學習中&#xff0c;正則化技術是防止模型過擬合、提升泛化能力的關鍵策略。隨著模型復雜度的增加&#xff0c;過擬合風險也隨之上升。正則化通過引入額外約束或信息&#xff0c;調整模型訓練過程&#xff0c;旨在簡化模型結構&#xff0c;使其學習到數據中的本質特…

VMware Workstation Pro 17.5.2 + license key

Workstation Pro是專為Windows操作系統設計的功能強大的虛擬化軟件平臺,它允許用戶在其計算機上創建和運行虛擬機,這使他們能夠同時與多個操作系統、應用程序和開發環境一起工作。 Workstation Pro的主要特點之一是其易用性,程序提供了直觀的界面,允許用戶輕松創建、配置和…

uabntu安裝opencv

1. 安裝前置依賴 sudo apt update sudo apt upgrade sudo apt install build-essential cmake git pkg-config sudo apt install libjpeg-dev libtiff-dev libpng-dev # Image libraries sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev # Vide…

RocketMQ NettyRemotingServer、NettyRemotingClient 實例化、初始化、啟動源碼解析

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互聯網企業擔任后端開發&#xff0c;CSDN 優質創作者 &#x1f4d6; 推薦專欄&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后續其他專欄會持續優化更新迭代 &#x1f332;文章所在專欄&#…

數學系C++ 類與對象 STL(九)

目錄 目錄 面向對象&#xff1a;py&#xff0c;c艸&#xff0c;Java都是,但c是面向過程 特征&#xff1a; 對象 內斂成員函數【是啥】&#xff1a; 構造函數和析構函數 構造函數 復制構造函數/拷貝構造函數&#xff1a; ?【……】 實參與形參的傳遞方式&#xff1a;值…