Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫一個chart中顯示兩條曲線詳細方法與實例
首先要了解QChartView、QChart、QLineSeries、QValueAxis的實體之間的關(guān)系,例如一個QChartView中可以包含幾個QValueAxis?這些可參考 Qt圖形圖像開發(fā)曲線圖表模塊QChart庫基本用法、各個類之間的關(guān)系說明
每個chart可以包含多個QLineSeries數(shù)據(jù)系列,每個QLineSeries數(shù)據(jù)系列又包含了2個QValueAxis數(shù)值軸或QDateTimeAxis時間軸。
那么這個chart中的多個數(shù)據(jù)系列,一起顯示在同一個chart中,會是什么情形?
新建ui工程,并添加MainWindow私有變量:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QChartView>
#include <QChart>
#include <QLineSeries>
#include <QValueAxis>
QT_CHARTS_USE_NAMESPACE
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QChart *chart;//非必要(QCharView實體中自帶一個QChart實體)
QLineSeries *series_sin, *series_cos;
QValueAxis *axis_x_sin, *axis_y_sin, *axis_x_cos, *axis_y_cos;
};
#endif // MAINWINDOW_H
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
chart(new QChart),//或者不用new,直接指向ui->graphicsView->chart()也行
series_sin(new QLineSeries),//sin曲線的數(shù)據(jù)點
series_cos(new QLineSeries),//cos曲線的數(shù)據(jù)點
axis_x_sin(new QValueAxis),//sin的X軸
axis_y_sin(new QValueAxis),//sin的Y軸
axis_x_cos(new QValueAxis),//cos的X軸
axis_y_cos(new QValueAxis)//cos的Y軸
{
ui->setupUi(this);
ui->graphicsView->setChart(chart);//view中顯示出chart
for(float x = 0; x < 10; x += 0.1)
{
series_sin->append(x, sin(x));
}
axis_x_sin->setRange(-5,25);
axis_y_sin->setRange(-2,2);
chart->addSeries(series_sin);
/*功能是:添加軸,并把軸和數(shù)據(jù)系列連接。注意,這一行并不能用來給chart添加數(shù)據(jù)系列
添加數(shù)據(jù)系列,要用chart->addSeries*/
chart->setAxisX(axis_x_sin, series_sin);
chart->setAxisY(axis_y_sin, series_sin);
for(float x = 10; x < 20; x += 0.1)
{
series_cos->append(x, cos(x));
}
axis_x_cos->setRange(5,25);
axis_y_cos->setRange(-2,2);
chart->addSeries(series_cos);
chart->setAxisX(axis_x_cos, series_cos);//cos使用自己的X軸
chart->setAxisY(axis_y_cos, series_cos);
// chart->setAxisX(axis_x_sin, series_cos);//cos共享sin曲線的X軸
// chart->setAxisY(axis_y_sin, series_cos);
}
運行結(jié)果如下所示,我們發(fā)現(xiàn),兩條曲線各自為政。

根據(jù)上面程序最后兩行的注釋,我們?nèi)绻堰@兩個QLineSeries數(shù)據(jù)系列,綁定到同一組XY軸上(也即,兩條曲線共享同一組XY軸),兩條曲線就能“真正”的顯示在同一個chart中了,如下所示。

本文介紹了Qt曲線圖表模塊QChart庫一個chart中顯示兩條曲線詳細方法與實例,更多關(guān)于Qt曲線圖表模塊QChart庫知識請查看下面的相關(guān)鏈接
- 基于PyQt5制作一個數(shù)據(jù)圖表生成器
- Qt繪制圖表的實現(xiàn)
- Qt QChart 創(chuàng)建圖表的實現(xiàn)方法
- Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫坐標(biāo)軸和數(shù)據(jù)不對應(yīng)、密集的散點圖無法顯示問題解決方法
- Qt圖形圖像開發(fā)曲線圖表模塊QChart庫縮放/平移詳細方法與實例
- Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間
- Qt圖形圖像開發(fā)曲線圖表模塊QChart庫基本用法、各個類之間的關(guān)系說明
- Qt圖形圖像開發(fā)之曲線圖表庫QChart編譯安裝詳細方法與使用實例
- Qt實現(xiàn)簡單折線圖表
相關(guān)文章
C語言實例真題講解數(shù)據(jù)結(jié)構(gòu)中單向環(huán)形鏈表
鏈表可以說是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護一組數(shù)據(jù)集合時,就可以使用鏈表,這一點和數(shù)組很相似2022-04-04
C語言中strspn()函數(shù)和strcspn()函數(shù)的對比使用
這篇文章主要介紹了C語言中strspn()函數(shù)和strcspn()函數(shù)的對比使用,strspn是計算屬于字符串的字符數(shù)而strcspn則是判斷不屬于,需要的朋友可以參考下2015-08-08
C++數(shù)組放在main函數(shù)內(nèi)外的區(qū)別
大家好,本篇文章主要講的是C++數(shù)組放在main函數(shù)內(nèi)外的區(qū)別,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01

