QT使用QChart繪制面積圖
繪制面積圖,則系列選擇面積系列QAreaSeries
需要給系列設(shè)置上折線和下折線(QLineSeries),如果沒有設(shè)置下折線,則默認x軸為下折線

1、創(chuàng)建圖表視圖
//1、創(chuàng)建圖表視圖 QChartView * view = new QChartView(this); //開啟抗鋸齒 view -> setRenderHint(QPainter::Antialiasing);
2、創(chuàng)建圖表,并將圖表設(shè)置給圖表視圖
//2.創(chuàng)建圖表
QChart * chart = new QChart();
//3.將圖表設(shè)置給視圖
view -> setChart(chart);
//設(shè)置標題
chart -> setTitle("面積圖");
chart -> legend() -> show(); //顯示或者隱藏圖例(默認顯示)
3、創(chuàng)建面積系列(QAreaSeries),
創(chuàng)建上折線和下折線(QLineSeries),并將上下折線設(shè)置給面積系列
設(shè)置面積系列的一些屬性
將系列添加到圖表中
//創(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);
//將上折線和下折線設(shè)置給面積系列
area -> setUpperSeries(upper);
area -> setLowerSeries(lower);
area -> setBrush(Qt::red); //設(shè)置面積圖的顏色
area -> setPointsVisible(true); //設(shè)置點可見
area -> setPointLabelsVisible(true); //設(shè)置點的標簽可見
area -> setName("哈哈"); //設(shè)置圖例的內(nèi)容
//將系列添加進圖表中
chart -> addSeries(area);4、使用QChart::createDefaultAxes()創(chuàng)建默認的x軸和y軸(根據(jù)內(nèi)部的系列)
//使用createDefaultAxes()來創(chuàng)建軸 //添加系列后可以創(chuàng)建默認的坐標軸,一定要在addSeries之后調(diào)用,根據(jù)序列來確定默認的坐標軸 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.將圖表設(shè)置給視圖
view->setChart(chart);
//設(shè)置標題
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);
//將上折線和下折線設(shè)置給面積系列
area->setUpperSeries(upper);
area->setLowerSeries(lower);
area->setBrush(Qt::red);//設(shè)置面積圖的顏色
area->setPointsVisible(true);//設(shè)置點可見
area->setPointLabelsVisible(true);//設(shè)置點的標簽可見
area->setName("哈哈");//設(shè)置圖例的內(nèi)容
//將系列添加進圖表中
chart->addSeries(area);
//使用createDefaultAxes()來創(chuàng)建軸
//添加系列后可以創(chuàng)建默認的坐標軸,一定要在addSeries之后調(diào)用,根據(jù)序列來確定默認的坐標軸
chart->createDefaultAxes();
chart->axes(Qt::Horizontal).at(0)->setRange(0,100);
chart->axes(Qt::Vertical).at(0)->setRange(0,200);
}
};
#endif // WIDGET_H到此這篇關(guān)于QT使用QChart繪制面積圖的文章就介紹到這了,更多相關(guān)QT QChart繪制面積圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡述C語言中system()函數(shù)與vfork()函數(shù)的使用方法
這篇文章主要介紹了簡述C語言中system()函數(shù)與vfork()函數(shù)的使用方法,是C語言入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08
C++讀取WAV音頻文件的頭部數(shù)據(jù)的實現(xiàn)方法
這篇文章主要介紹了C++讀取WAV音頻文件的頭部數(shù)據(jù)的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的方法,需要的朋友可以參考下2017-10-10
C++基于遞歸和非遞歸算法判定兩個二叉樹結(jié)構(gòu)是否完全相同(結(jié)構(gòu)和數(shù)據(jù)都相同)
這篇文章主要介紹了C++基于遞歸和非遞歸算法判定兩個二叉樹結(jié)構(gòu)是否完全相同,若判斷二叉樹的結(jié)構(gòu)和數(shù)據(jù)都相同則為完全相同.涉及C++二叉樹的創(chuàng)建、遍歷、比較等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
C語言數(shù)據(jù)結(jié)構(gòu)哈希表詳解
哈希表是一種根據(jù)關(guān)鍵碼去尋找值的數(shù)據(jù)映射結(jié)構(gòu),該結(jié)構(gòu)通過把關(guān)鍵碼映射的位置去尋找存放值的地方,說起來可能感覺有點復雜,我想我舉個例子你就會明白了,最典型的的例子就是字典2022-02-02

