47.QT-QChart之曲線圖,餅狀圖,條形圖使用

?1.使用準備

在pro中, 添加QT+= charts

然后在界面頭文件中添加頭文件并聲明命名空間,添加:

#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

?

2.QChart之曲線圖

繪制曲線圖需要用到3個類

  • QSplineSeries:? 用于創建有由一系列數據組成的曲線.類似的還有QPieSeries(餅圖數據). QLineSeries(折線數據)
  • QChart:? ? 圖表界面,用來管理圖表內容,顏色,大小等
  • QChartView:? 負責顯示QChart

效果如下:

代碼如下所示:

    m_chart = new QChart();QSplineSeries *series1 = new QSplineSeries();//實例化一個QLineSeries對象series1->setColor(QColor(0,100,255));series1->append(QPointF(0,qrand()%200)) ;series1->append(QPointF(30,qrand()%200)) ;series1->append(QPointF(60,qrand()%200)) ;series1->append(QPointF(90,qrand()%200)) ;series1->append(QPointF(120,qrand()%200)) ;series1->setName("線條1");series1->setVisible(true);series1->setPointLabelsFormat("(@xPoint,@yPoint)");series1->setPointLabelsVisible(true);m_chart->setTheme(QChart::ChartThemeLight);//設置白色主題m_chart->setDropShadowEnabled(true);//背景陰影
m_chart->setAutoFillBackground(true); //設置背景自動填充
m_chart->addSeries(series1);//添加系列到QChart上 m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//設置標題Brushm_chart->setTitleFont(QFont("微軟雅黑"));//設置標題字體m_chart->setTitle("曲線圖");//創建X軸和Y軸QValueAxis *axisX = new QValueAxis;axisX->setRange(0,150); //改為setRange(0,1);則表示坐標為動態計算大小的 axisX->setLabelFormat("%dS");QValueAxis *axisY = new QValueAxis;axisY->setRange(0,250); //改為setRange(0,1);則表示坐標為動態計算大小的 axisY->setTitleText("value值");m_chart->setAxisX(axisX,series1);m_chart->setAxisY(axisY,series1);//m_chart->createDefaultAxes(); //或者創建默認軸//修改說明樣式m_chart->legend()->setVisible(true);m_chart->legend()->setAlignment(Qt::AlignBottom);//底部對齊m_chart->legend()->setBackgroundVisible(true);//設置背景是否可視m_chart->legend()->setAutoFillBackground(true);//設置背景自動填充m_chart->legend()->setColor(QColor(222,233,251));//設置顏色m_chart->legend()->setLabelColor(QColor(0,100,255));//設置標簽顏色m_chart->legend()->setMaximumHeight(50);QChartView *chartView = new QChartView(m_chart);chartView->setRenderHint(QPainter::Antialiasing);QVBoxLayout *pVLayout = new QVBoxLayout(this);pVLayout->addWidget(chartView);resize(960, 720);

3.QChart之餅圖

繪制餅圖需要用到3個類

  • QSplineSeries:? ?用于創建有由一系列數據組成的餅圖數據
  • QChart:? ? 圖表界面,用來管理圖表內容,顏色,大小等
  • QChartView:負責顯示QChart

效果如下:

?

代碼如下:

    m_chart = new QChart();QPieSeries *series = new QPieSeries();series->append("水果:30%",3);     //添加標簽"水果:30%" 和 百分值30%series->append("零食:20%",2);series->append("主食:50%",5);series->setLabelsVisible(true);series->setUseOpenGL(true);series->slices().at(0)->setColor(QColor(13,128,217));   //設置顏色series->slices().at(0)->setLabelColor(QColor(13,128,217));series->slices().at(1)->setColor(QColor(69,13,217));series->slices().at(1)->setLabelColor(QColor(69,13,217));
series
->slices().at(2)->setColor(QColor(13,217,152));series->slices().at(2)->setLabelColor(QColor(13,217,152));m_chart->setTheme(QChart::ChartThemeLight);//設置白色主題m_chart->setDropShadowEnabled(true);//背景陰影m_chart->addSeries(series);//添加系列到QChart上 m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//設置標題Brushm_chart->setTitleFont(QFont("微軟雅黑"));//設置標題字體m_chart->setTitle("餅狀圖");//修改說明樣式m_chart->legend()->setVisible(true);m_chart->legend()->setAlignment(Qt::AlignBottom);//底部對齊m_chart->legend()->setBackgroundVisible(true);//設置背景是否可視m_chart->legend()->setAutoFillBackground(true);//設置背景自動填充m_chart->legend()->setColor(QColor(222,233,251));//設置顏色m_chart->legend()->setLabelColor(QColor(0,100,255));//設置標簽顏色m_chart->legend()->setMaximumHeight(50);QChartView *chartView = new QChartView(m_chart);chartView->setRenderHint(QPainter::Antialiasing);QVBoxLayout *pVLayout = new QVBoxLayout(this);pVLayout->addWidget(chartView);resize(960, 720);

4. QChart之條形圖

繪制條形圖需要用到4個類

  • QBarSet: 一個條形集合
  • QBarSeries:??用來封裝多個QBarSet的條形數據
  • QChart:? ?圖表界面,用來管理圖表內容,顏色,大小等
  • QChartView:? 負責顯示QChart

效果如下:

?

代碼如下:

    m_chart = new QChart();//創建3個條線數據QBarSet *set0 = new QBarSet("零食");QBarSet *set1 = new QBarSet("水果");QBarSet *set2 = new QBarSet("主食");*set0 << 158 << 685 << 458 << 260 << 354;    //向零食數據添加這4個月的銷售數據*set1 << 350 << 725 << 602 << 523 << 458;*set2 << 222 << 350 << 598 << 480 << 687;set0->setLabelColor(QColor(0,0,255));       //設置條形數據顏色set1->setLabelColor(QColor(0,0,255));set2->setLabelColor(QColor(0,0,255));QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);series->append(set2);series->setVisible(true);series->setLabelsVisible(true);m_chart->setTheme(QChart::ChartThemeLight);//設置白色主題m_chart->setDropShadowEnabled(true);//背景陰影m_chart->addSeries(series);//添加系列到QChart上
m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//設置標題Brushm_chart->setTitleFont(QFont("微軟雅黑"));//設置標題字體m_chart->setTitle("超市銷售條形圖");//創建X軸和Y軸QBarCategoryAxis *axisX = new QBarCategoryAxis;axisX->append("一月");axisX->append("二月");axisX->append("三月");axisX->append("四月");axisX->append("五月");axisX->setLabelsColor(QColor(7,28,96));QValueAxis *axisY = new QValueAxis;axisY->setRange(0,1000);   //改為setRange(0,1);則表示坐標為動態計算大小的axisY->setTitleText("價格");axisY->setLabelFormat("%d$");m_chart->setAxisX(axisX,series);m_chart->setAxisY(axisY,series);//修改說明樣式m_chart->legend()->setVisible(true);m_chart->legend()->setAlignment(Qt::AlignBottom);//底部對齊m_chart->legend()->setBackgroundVisible(true);//設置背景是否可視m_chart->legend()->setAutoFillBackground(true);//設置背景自動填充m_chart->legend()->setColor(QColor(222,233,251));//設置顏色m_chart->legend()->setLabelColor(QColor(0,100,255));//設置標簽顏色m_chart->legend()->setMaximumHeight(50);QChartView *chartView = new QChartView(m_chart);chartView->setRenderHint(QPainter::Antialiasing);QVBoxLayout *pVLayout = new QVBoxLayout(this);pVLayout->addWidget(chartView);resize(960, 720);

?

轉載于:https://www.cnblogs.com/lifexy/p/10985191.html

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

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

相關文章

Docker 部署應用、jar 工程 docker 方式部署

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 把要部署的工程打成一個jar包。&#xff08;我的工程叫 gentle &#xff09; 打 jar 的方法&#xff1a;超簡單方法&#xff1a; Int…

流浪不是我的初衷 ... ...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 或許&#xff0c;我從來就是一個習慣沉默的人 ... 或許&#xff0c;我從來就不善于傾述 ... 會有難過的時候&#xff0c;會有覺得累的…

第二階段沖刺(2)

1、整個項目預期的任務量 &#xff08;任務量 所有工作的預期時間&#xff09;和 目前已經花的時間 &#xff08;所有記錄的 ‘已經花費的時間’&#xff09;&#xff0c;還剩余的時間&#xff08;所有工作的 ‘剩余時間’&#xff09; &#xff1b; 所有工作的預期時間&#…

VS2008+OpenCL環境配置

1. 配置.cl文件支持: 1.1. 打開VS2008&#xff0c; 工具->選項->文本編輯器->文件擴展名&#xff0c;添加一個新的擴展名&#xff0c;指定編輯器為Microsoft Visual C 。這樣在OpenCL文件中就能顯示C的語法高亮了。 1.2. 配置OpenCL語法高亮 - 打開目錄~\NVIDIA Corpo…

第十二周學習進度報告

代碼時間&#xff1a;17小時左右&#xff0c; 代碼量&#xff1a;300行左右&#xff0c; 閱讀&#xff1a;一個app的誕生20頁&#xff1b;構建之法30頁 知識&#xff1a;抽象典型用戶&#xff08;具有代表性&#xff09;和場景&#xff0c;去設計相應功能。 轉載于:https://www…

我的桃花源

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 看了一個動畫片&#xff08;《貓與桃花源》&#xff09;&#xff0c;畫風和內容并不是我最偏好的... 但故事結尾的旁白和歌曲卻打動了一…

promise實例

不廢話&#xff0c;粘代碼 function ajax(method, url, data) {let request new XMLHttpRequest();return new Promise(function (resolve, reject) {request.onreadystatechange function () {if (request.readyState 4) {if (request.status 200) {resolve(request.respo…

華為路由器配置DHCP中繼

DHCP(動態主機配置協議)理論知識&#xff1a;DHCP主要用來為客戶機自動配置I P地址相關的網絡參數&#xff0c;包括IP地址、子網掩碼、默認網關、DNS服務器等。 DHCP 通信為廣播的方式&#xff0c;因此當需要 DHCP 服務器為不同廣播域&#xff08;路由或 VLAN 網段&#xff09;…

基于GPU的K-Means聚類算法

聚類是信息檢索、數據挖掘中的一類重要技術&#xff0c;是分析數據并從中發現有用信息的一種有效手段。它將數據對象分組成為多個類或簇&#xff0c;使得在同一個簇中的對象之間具有較高的相似度&#xff0c;而不同簇中的對象差別很大。作為統計學的一個分支和一種無監督的學習…

IntelliJ IDEA 工具篇之如何切換 git 分支

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1、進入項目和工程。 2、點擊右下角的git:master&#xff0c;然后選擇origin/master&#xff0c;然后選擇你要切換的分支&#xff0c;我…

IDEA---SpringBoot同一個項目多端口啟動

-Dserver.port xxxx 轉載于:https://www.cnblogs.com/tonyzt/p/10987116.html

好程序員Web前端分享無法忽視的JavaScript技巧

好程序員Web前端分享無法忽視的JavaScript技巧。在大家從事web前端的工作中&#xff0c;很容易忽視一些JavaScript的小技巧&#xff0c;今天為大家總結了一些容易被大家忽略的技巧&#xff0c;希望能夠對大家有所幫助。1、過濾唯一值Set類型是在ES6中新增的&#xff0c;它類似于…

GPU通用計算調研報告

摘要&#xff1a;NVIDIA公司在1999年發布GeForce256時首先提出GPU&#xff08;圖形處理器&#xff09;的概念&#xff0c;隨后大量復雜的應用需求促使整個產業蓬勃發展至今。GPU在這十多年的演變過程中&#xff0c;我們看到GPU從最初幫助CPU分擔幾何吞吐量&#xff0c;到Shader…

git 圖形化工具 GitKraken 的使用 —— 分支的創建與合并

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 分支管理是Git工作流的重點 在之前的文章中通過GitKraken可以很清楚的看到&#xff0c;每一次commit&#xff0c;git把他們串成了一條線…

ubuntu11.04下CUDA4.0的安裝與配置

1&#xff1a;下載CUDA 4.0 安裝官網最新的顯卡驅動&#xff1a; 安裝方法可以參考&#xff1a; 《Ubuntu11.04下安裝Nvidia顯卡驅動的方法》 然后從NVIDIA網站&#xff08;http://developer.nvidia.com/cuda-downloads&#xff09;下載 CUDA Toolkit for Ubuntu Linux 10.10&a…

GitKraken - 簡單教程

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 簡單介紹&#xff1a;外觀 GitKraken首頁預覽圖 常用快捷鍵 模糊搜索&#xff1a;(cmd p) 在進行模糊搜索的時候會在當前頁面彈出一個…

LeetCode刷題第二天——3Longest Substring Without repeating character 4 Median of Two Sorted Arrays...

混淆點&#xff1a; 子串 連續 子序列 可以不連續 知識點&#xff1a; HashMap&#xff1a; 出現問題&#xff1a; 1.使用unordered_map頭文件時報錯 #error This file requires compiler and library support for the ISO C 2011 standard. This support is currently experi…

【BZOJ 3339 / BZOJ 3585 / luogu 4137】Rmq Problem / mex

【原題題面】傳送門 【題解大意】 都說了是莫隊練習題。 考慮已知[l,r]區間的mex值時&#xff0c;如何求[l1,r]的mex值。 比較a[l1]與已知ans的大小&#xff0c;如果a[l1]>ans或者a[l1]<ans&#xff0c;均對答案沒有影響。 如果a[l1]ans&#xff0c;考慮找到一個比當前an…

postman 無法正常返回結果 Could not get any response

在瀏覽器輸入地址可以返回結果&#xff0c;但是由于返回的json沒有格式&#xff0c;看起來比較麻煩&#xff0c;用postman卻報錯Could not get any response。 可以注意到下面寫了可能的情況&#xff1a;比如服務器無響應&#xff08;由于瀏覽器可以訪問&#xff0c;所以排除…

在Windows 下使用OpenCL

目前&#xff0c;NVIDIA和AMD的Windows driver均有支援OpenCL&#xff08;NVIDIA的正式版driver是從195.62版開始&#xff0c;而AMD則是從9.11版開始&#xff09;。NVIDIA的正式版driver中包含OpenCL.dll&#xff0c;因此可以直接使用。AMD到目前為止&#xff0c;則仍需要安裝其…