QT使用QChart繪制面積圖
繪制面積圖,則系列選擇面積系列QAreaSeries
需要給系列設置上折線和下折線(QLineSeries),如果沒有設置下折線,則默認x軸為下折線
1、創(chuàng)建圖表視圖
//1、創(chuàng)建圖表視圖 QChartView * view = new QChartView(this); //開啟抗鋸齒 view -> setRenderHint(QPainter::Antialiasing);
2、創(chuàng)建圖表,并將圖表設置給圖表視圖
//2.創(chuàng)建圖表 QChart * chart = new QChart(); //3.將圖表設置給視圖 view -> setChart(chart); //設置標題 chart -> setTitle("面積圖"); chart -> legend() -> show(); //顯示或者隱藏圖例(默認顯示)
3、創(chuàng)建面積系列(QAreaSeries),
創(chuàng)建上折線和下折線(QLineSeries),并將上下折線設置給面積系列
設置面積系列的一些屬性
將系列添加到圖表中
//創(chuàng)建面積系列 QAreaSeries * area = new QAreaSeries(this); //需要添加圍成面積的下折線和上折線, //沒有上折線,不會顯示;沒有下折線,默認以x軸為下折線 QLineSeries * upper = new QLineSeries(this); upper -> append(10, 130); upper -> append(50, 180); upper -> append(80, 120); QLineSeries * lower = new QLineSeries(this); lower -> append(25, 80); lower -> append(90, 80); //將上折線和下折線設置給面積系列 area -> setUpperSeries(upper); area -> setLowerSeries(lower); area -> setBrush(Qt::red); //設置面積圖的顏色 area -> setPointsVisible(true); //設置點可見 area -> setPointLabelsVisible(true); //設置點的標簽可見 area -> setName("哈哈"); //設置圖例的內容 //將系列添加進圖表中 chart -> addSeries(area);
4、使用QChart::createDefaultAxes()創(chuàng)建默認的x軸和y軸(根據內部的系列)
//使用createDefaultAxes()來創(chuàng)建軸 //添加系列后可以創(chuàng)建默認的坐標軸,一定要在addSeries之后調用,根據序列來確定默認的坐標軸 chart -> createDefaultAxes(); chart -> axes(Qt::Horizontal).at(0) -> setRange(0, 100); chart -> axes(Qt::Vertical).at(0) -> setRange(0, 200);
完整代碼
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QtCharts> #include<QHBoxLayout> #include<QAreaSeries> class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr) : QWidget(parent) { resize(800,600); QHBoxLayout* h_box=new QHBoxLayout(this); drawAreaPic(); } ~Widget()=default; //畫面積圖 void drawAreaPic() { //1、創(chuàng)建圖表視圖 QChartView* view=new QChartView(this); //開啟抗鋸齒 view->setRenderHint(QPainter::Antialiasing); this->layout()->addWidget(view); //2.創(chuàng)建圖表 QChart* chart=new QChart(); //3.將圖表設置給視圖 view->setChart(chart); //設置標題 chart->setTitle("面積圖"); chart->legend()->show();//顯示或者隱藏圖例(默認顯示) //創(chuàng)建面積系列 QAreaSeries* area=new QAreaSeries(this); //需要添加圍成面積的下折線和上折線, //沒有上折線,不會顯示;沒有下折線,默認以x軸為下折線 QLineSeries* upper=new QLineSeries(this); upper->append(10,130); upper->append(50,180); upper->append(80,120); QLineSeries* lower=new QLineSeries(this); lower->append(25,80); lower->append(90,80); //將上折線和下折線設置給面積系列 area->setUpperSeries(upper); area->setLowerSeries(lower); area->setBrush(Qt::red);//設置面積圖的顏色 area->setPointsVisible(true);//設置點可見 area->setPointLabelsVisible(true);//設置點的標簽可見 area->setName("哈哈");//設置圖例的內容 //將系列添加進圖表中 chart->addSeries(area); //使用createDefaultAxes()來創(chuàng)建軸 //添加系列后可以創(chuàng)建默認的坐標軸,一定要在addSeries之后調用,根據序列來確定默認的坐標軸 chart->createDefaultAxes(); chart->axes(Qt::Horizontal).at(0)->setRange(0,100); chart->axes(Qt::Vertical).at(0)->setRange(0,200); } }; #endif // WIDGET_H
到此這篇關于QT使用QChart繪制面積圖的文章就介紹到這了,更多相關QT QChart繪制面積圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++?實現(xiàn)單鏈表創(chuàng)建、插入和刪除
這篇文章主要介紹了C++?實現(xiàn)單鏈表創(chuàng)建、插入和刪除方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07解析內存對齊 Data alignment: Straighten up and fly right的詳解
對于所有直接操作內存的程序員來說,數(shù)據對齊都是很重要的問題.數(shù)據對齊對你的程序的表現(xiàn)甚至能否正常運行都會產生影響2013-05-05c++ 盡量不要使用#define 而是用const、enum、inline替換。
為什么這么說呢?或許很多程序員已經習慣在文件開始使用大量的#define語句2013-01-01C++中的多態(tài)問題—理解虛函數(shù)表及多態(tài)實現(xiàn)原理
這篇文章主要介紹了C++中的多態(tài)問題—理解虛函數(shù)表及多態(tài)實現(xiàn)原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02MFC創(chuàng)建模態(tài)對話框和非模態(tài)對話框的方法
這篇文章主要介紹了MFC創(chuàng)建模態(tài)對話框和非模態(tài)對話框的方法,需要的朋友可以參考下2014-07-07