首先要了解QChartView、QChart、QLineSeries、QValueAxis的实体之间的关系,例如一个QChartView中可以包含几个QValueAxis?这些可参考 Qt图形图像开发曲线图表模块QChart库基本用法、各个类之间的关系说明
每个chart可以包含多个QLineSeries数据系列,每个QLineSeries数据系列又包含了2个QValueAxis数值轴或QDateTimeAxis时间轴。
那么这个chart中的多个数据系列,一起显示在同一个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曲线的数据点
series_cos(new QLineSeries),//cos曲线的数据点
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);
/*功能是:添加轴,并把轴和数据系列连接。注意,这一行并不能用来给chart添加数据系列
添加数据系列,要用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);
}
运行结果如下所示,我们发现,两条曲线各自为政。
根据上面程序最后两行的注释,我们如果把这两个QLineSeries数据系列,绑定到同一组XY轴上(也即,两条曲线共享同一组XY轴),两条曲线就能“真正”的显示在同一个chart中了,如下所示。
本文介绍了Qt曲线图表模块QChart库一个chart中显示两条曲线详细方法与实例,更多关于Qt曲线图表模块QChart库知识请查看下面的相关链接
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。