From a155ad45d31b41041b6895a75b0ba0c2e9b10327 Mon Sep 17 00:00:00 2001 From: feiyangqingyun Date: Wed, 18 May 2022 17:39:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - third/0snap/qcustomplotdemo8.jpg | Bin 111636 -> 0 bytes third/qcustomplotdemo/frmcustom/frmcustom.pri | 5 +- third/qcustomplotdemo/frmcustom/frmmain.cpp | 17 +- third/qcustomplotdemo/frmcustom/frmmain.h | 1 + .../frmcustom/frmmultiaxes.cpp | 186 ------------------ .../qcustomplotdemo/frmcustom/frmmultiaxes.h | 36 ---- .../qcustomplotdemo/frmcustom/frmmultiaxes.ui | 35 ---- .../frmexample/frmadvancedaxes.cpp | 11 +- .../frmexample/frmbarchart.cpp | 6 +- .../frmexample/frmcolormap.cpp | 1 + third/qcustomplotdemo/frmexample/frmdate.cpp | 10 +- .../frmexample/frmfinancial.cpp | 5 +- third/qcustomplotdemo/frmexample/frmitem.cpp | 6 +- .../frmexample/frmlinestyle.cpp | 7 + .../frmexample/frmlogarithmic.cpp | 6 +- .../frmexample/frmmultiaxis.cpp | 8 + .../frmexample/frmparametriccurve.cpp | 5 + .../frmexample/frmpolarplot.cpp | 1 + .../frmexample/frmquadratic.cpp | 1 + .../frmexample/frmrealtimedata.cpp | 6 +- .../frmexample/frmscatterpixmap.cpp | 3 + .../frmexample/frmscatterstyle.cpp | 1 + .../qcustomplotdemo/frmexample/frmsimple.cpp | 4 + .../frmexample/frmsincscatter.cpp | 8 + .../qcustomplotdemo/frmexample/frmstyled.cpp | 4 + .../frmexample2/frmaxistag.cpp | 37 ++-- .../qcustomplotdemo/frmexample2/frmaxistag.h | 7 +- .../frmexample2/frmscrollbar.cpp | 40 ++-- .../frmexample2/frmscrollbar.ui | 4 +- third/qcustomplotdemo/readme.md | 5 +- third/qcustomplotdemo/snap/25.jpg | Bin 111202 -> 0 bytes 32 files changed, 145 insertions(+), 322 deletions(-) delete mode 100644 third/0snap/qcustomplotdemo8.jpg delete mode 100644 third/qcustomplotdemo/frmcustom/frmmultiaxes.cpp delete mode 100644 third/qcustomplotdemo/frmcustom/frmmultiaxes.h delete mode 100644 third/qcustomplotdemo/frmcustom/frmmultiaxes.ui delete mode 100644 third/qcustomplotdemo/snap/25.jpg diff --git a/README.md b/README.md index 792cfca..c311261 100644 --- a/README.md +++ b/README.md @@ -214,7 +214,6 @@ ![](third/0snap/qcustomplotdemo5.jpg) ![](third/0snap/qcustomplotdemo6.jpg) ![](third/0snap/qcustomplotdemo7.jpg) -![](third/0snap/qcustomplotdemo8.jpg) ### 3.8 网友提供-netfriend - 动态StackWidget-astackwidget diff --git a/third/0snap/qcustomplotdemo8.jpg b/third/0snap/qcustomplotdemo8.jpg deleted file mode 100644 index 65c6c7f4789cf74a638dfa687e946bbe633855e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111636 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 z�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 M%K>D*%^%PI2Y)Z4r~m)} diff --git a/third/qcustomplotdemo/frmcustom/frmcustom.pri b/third/qcustomplotdemo/frmcustom/frmcustom.pri index c67d3e7..72b7f5d 100644 --- a/third/qcustomplotdemo/frmcustom/frmcustom.pri +++ b/third/qcustomplotdemo/frmcustom/frmcustom.pri @@ -1,13 +1,10 @@ FORMS += \ - $$PWD/frmmain.ui \ - $$PWD/frmmultiaxes.ui + $$PWD/frmmain.ui HEADERS += \ $$PWD/frmmain.h \ - $$PWD/frmmultiaxes.h \ $$PWD/iconhelper.h SOURCES += \ $$PWD/frmmain.cpp \ - $$PWD/frmmultiaxes.cpp \ $$PWD/iconhelper.cpp diff --git a/third/qcustomplotdemo/frmcustom/frmmain.cpp b/third/qcustomplotdemo/frmcustom/frmmain.cpp index 3ca0fef..9bc851d 100644 --- a/third/qcustomplotdemo/frmcustom/frmmain.cpp +++ b/third/qcustomplotdemo/frmcustom/frmmain.cpp @@ -30,7 +30,6 @@ #include "frmaxistag.h" #include "frminteraction.h" #include "frmscrollbar.h" -#include "frmmultiaxes.h" frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain) { @@ -53,8 +52,17 @@ void frmMain::showEvent(QShowEvent *) bar->setValue(bar->maximum()); } +QList frmMain::colors = QList(); void frmMain::initForm() { + //颜色集合供其他界面使用 + colors << QColor(211, 78, 78) << QColor(29, 185, 242) << QColor(170, 162, 119) << QColor(255, 192, 1); + colors << QColor(0, 176, 180) << QColor(0, 113, 193) << QColor(255, 192, 0); + colors << QColor(72, 103, 149) << QColor(185, 87, 86) << QColor(0, 177, 125); + colors << QColor(214, 77, 84) << QColor(71, 164, 233) << QColor(34, 163, 169); + colors << QColor(59, 123, 156) << QColor(162, 121, 197) << QColor(72, 202, 245); + colors << QColor(0, 150, 121) << QColor(111, 9, 176) << QColor(250, 170, 20); + ui->scrollArea->setFixedWidth(170); ui->widgetLeft->setProperty("flag", "left"); } @@ -67,26 +75,29 @@ void frmMain::initWidget() ui->stackedWidget->addWidget(new frmSincScatter); ui->stackedWidget->addWidget(new frmScatterStyle); ui->stackedWidget->addWidget(new frmScatterPixmap); + ui->stackedWidget->addWidget(new frmLineStyle); ui->stackedWidget->addWidget(new frmDate); ui->stackedWidget->addWidget(new frmTextureBrush); ui->stackedWidget->addWidget(new frmMultiAxis); ui->stackedWidget->addWidget(new frmLogarithmic); + ui->stackedWidget->addWidget(new frmRealtimeData); ui->stackedWidget->addWidget(new frmParametricCurve); ui->stackedWidget->addWidget(new frmBarChart); ui->stackedWidget->addWidget(new frmStatistical); ui->stackedWidget->addWidget(new frmSimpleItem); + ui->stackedWidget->addWidget(new frmItem); ui->stackedWidget->addWidget(new frmStyled); ui->stackedWidget->addWidget(new frmAdvancedAxes); ui->stackedWidget->addWidget(new frmColorMap); ui->stackedWidget->addWidget(new frmFinancial); ui->stackedWidget->addWidget(new frmPolarPlot); + ui->stackedWidget->addWidget(new frmAxisTag); ui->stackedWidget->addWidget(new frmInterAction); ui->stackedWidget->addWidget(new frmScrollBar); - ui->stackedWidget->addWidget(new frmMultiAxes); } void frmMain::initNav() @@ -97,7 +108,7 @@ void frmMain::initNav() << "曲线条样式" << "日期数据图" << "纹理画刷图" << "双坐标曲线" << "对数曲线图" << "动态正弦图" << "环形曲线图" << "垂直柱状图" << "箱形盒须图" << "静态指示线" << "动态指示线" << "曲线样式图" << "高级坐标轴" << "颜色热力图" << "金融曲线图" - << "南丁格尔图" << "坐标轴指示" << "相互作用图" << "滚动条曲线" << "多坐标轴图"; + << "南丁格尔图" << "坐标轴指示" << "相互作用图" << "滚动条曲线"; //自动生成按钮 for (int i = 0; i < names.count(); i++) { diff --git a/third/qcustomplotdemo/frmcustom/frmmain.h b/third/qcustomplotdemo/frmcustom/frmmain.h index 5a7bc37..7cd29ab 100644 --- a/third/qcustomplotdemo/frmcustom/frmmain.h +++ b/third/qcustomplotdemo/frmcustom/frmmain.h @@ -13,6 +13,7 @@ class frmMain : public QWidget Q_OBJECT public: + static QList colors; explicit frmMain(QWidget *parent = 0); ~frmMain(); diff --git a/third/qcustomplotdemo/frmcustom/frmmultiaxes.cpp b/third/qcustomplotdemo/frmcustom/frmmultiaxes.cpp deleted file mode 100644 index 7a014d5..0000000 --- a/third/qcustomplotdemo/frmcustom/frmmultiaxes.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#include "frmmultiaxes.h" -#include "ui_frmmultiaxes.h" -#include "qfile.h" -#include "qdebug.h" - -frmMultiAxes::frmMultiAxes(QWidget *parent) : QWidget(parent), ui(new Ui::frmMultiAxes) -{ - ui->setupUi(this); - this->initForm(); -} - -frmMultiAxes::~frmMultiAxes() -{ - delete ui; -} - -void frmMultiAxes::initForm() -{ - //Y坐标轴的数量 - count = 4; - - this->initPlot(ui->customPlot1, QCPAxis::atLeft, count); - this->initPlot(ui->customPlot2, QCPAxis::atRight, count); - - this->loadPlot(ui->customPlot1, QCPAxis::atLeft, count); - this->loadPlot(ui->customPlot2, QCPAxis::atRight, count); - - for (int i = 0; i < count; ++i) { - this->loadData(ui->customPlot1, i); - this->loadData(ui->customPlot2, i); - } -} - -void frmMultiAxes::selectionChangedByUser() -{ - //联动处理 坐标轴、刻度尺、画布曲线 选中一样则选中所有 - QCustomPlot *customPlot = (QCustomPlot *)sender(); - QCPAxis::AxisType type; - if (customPlot == ui->customPlot1) { - type = QCPAxis::atLeft; - } else if (customPlot == ui->customPlot2) { - type = QCPAxis::atRight; - } - - int selecteIndex = -1; - for (int i = 0; i < count; ++i) { - //获取对应的坐标轴 - QCPAxis *axis = customPlot->axisRect()->axis(type, i); - //获取对应的画布曲线 - QCPGraph *graph = customPlot->graph(i); - //判断 坐标轴、刻度尺、画布曲线 是否选中了一个 - if (axis->selectedParts().testFlag(QCPAxis::spAxis) || axis->selectedParts().testFlag(QCPAxis::spTickLabels) || graph->selected()) { - //设置坐标轴、刻度尺同时选中 - axis->setSelectedParts(QCPAxis::spAxis | QCPAxis::spTickLabels); - //设置画布曲线选中 - graph->setSelection(QCPDataSelection(graph->data()->dataRange())); - selecteIndex = i; - break; - } - } - - //存在选中则设置当前选中的可拖动和缩放 - //不存在则设置所有的可拖动和缩放 - QCPAxisRect *axisRect = customPlot->axisRect(); - if (selecteIndex >= 0) { - QCPAxis *axis = axisRect->axis(type, selecteIndex); - axisRect->setRangeDragAxes(customPlot->xAxis, axis); - axisRect->setRangeZoomAxes(customPlot->xAxis, axis); - } else { -#ifndef qcustomplot_v1_3 - axisRect->setRangeDragAxes(axisRect->axes()); - axisRect->setRangeZoomAxes(axisRect->axes()); -#endif - } -} - -void frmMultiAxes::initPlot(QCustomPlot *customPlot, const QCPAxis::AxisType &type, int count) -{ - //选中对应的坐标轴或者画布等 - connect(customPlot, SIGNAL(selectionChangedByUser()), this, SLOT(selectionChangedByUser())); - //connect(customPlot->yAxis2, SIGNAL(rangeChanged(QCPRange)), customPlot->yAxis, SLOT(setRange(QCPRange))); - - if (type == QCPAxis::atLeft) { - customPlot->yAxis->setVisible(true); - customPlot->yAxis2->setVisible(false); - } else if (type == QCPAxis::atRight) { - customPlot->yAxis->setVisible(false); - customPlot->yAxis2->setVisible(true); - } - - //添加多个坐标轴 - for (int i = 0; i < count - 1; ++i) { - customPlot->axisRect()->addAxis(type); - } - - //设置边距、范围值、网格可见、刻度数量等 - for (int i = 0; i < count; ++i) { - QCPAxis *axis = customPlot->axisRect()->axis(type, i); - axis->setPadding(10); - axis->setRange(0, 1); - axis->grid()->setVisible(true); - //axis->grid()->setSubGridVisible(true); - axis->ticker()->setTickCount(10); - } - - //设置初始范围值 - customPlot->xAxis->setRange(0.5, 10.5); - //设置刻度数量 - customPlot->xAxis->ticker()->setTickCount(10); - //设置可拖动和缩放选中等 - customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes | QCP::iSelectPlottables); -} - -void frmMultiAxes::loadPlot(QCustomPlot *customPlot, const QCPAxis::AxisType &type, int count) -{ - //颜色集合 - QList colors; - colors << QColor(211, 78, 78) << QColor(29, 185, 242) << QColor(170, 162, 119) << QColor(255, 192, 1); - colors << QColor(0, 176, 180) << QColor(0, 113, 193) << QColor(255, 192, 0); - colors << QColor(72, 103, 149) << QColor(185, 87, 86) << QColor(0, 177, 125); - colors << QColor(214, 77, 84) << QColor(71, 164, 233) << QColor(34, 163, 169); - colors << QColor(59, 123, 156) << QColor(162, 121, 197) << QColor(72, 202, 245); - colors << QColor(0, 150, 121) << QColor(111, 9, 176) << QColor(250, 170, 20); - - for (int i = 0; i < count; ++i) { - //分配一种颜色 - QColor color; - if (i < colors.count()) { - color = colors.at(i); - } - - QPen pen(color); - QCPAxis *axis = customPlot->axisRect()->axis(type, i); - //刻度文本颜色 - axis->setTickLabelColor(color); - //刻度线条颜色 - axis->setBasePen(pen); - //大刻度尺颜色 - axis->setTickPen(pen); - //小刻度尺颜色 - axis->setSubTickPen(pen); - //画布线条颜色 - QCPGraph *graph = customPlot->addGraph(customPlot->xAxis, axis); - graph->setPen(pen); - } -} - -void frmMultiAxes::loadData(QCustomPlot *customPlot, int index) -{ - //下面演示从文本文件读取数据,具体格式可以自行打开文件查看 - //真实场景自己准备数据调用 setData 即可 - int flag = index > 2 ? 0 : index; - QString fileName = QString(":/data/data%1.txt").arg(flag); - QFile file(fileName); - if (file.open(QFile::ReadOnly | QIODevice::Text)) { - QString value = file.readAll(); - file.close(); - - QVector keys, values; - QStringList list = value.split(" "); - int len = list.length(); - - //如果不是2的倍数则长度要减去1 - if (len % 2 != 0) { - len = (len - 1); - } - - for (int i = 0; i < len / 2; i++) { - keys << i; - } - - //每两个16进制数字组合成一个数字 - for (int i = 0; i < len; i = i + 2) { - QString strHex = QString("%1%2").arg(list.at(i)).arg(list.at(i + 1)); - qint16 value = strHex.toUShort(NULL, 16); - values << value; - } - - //获取对应画布 - QCPGraph *graph = customPlot->graph(index); - //设置数据到画布 - graph->setData(keys, values); - //自适应坐标轴 - graph->rescaleAxes(); - } -} diff --git a/third/qcustomplotdemo/frmcustom/frmmultiaxes.h b/third/qcustomplotdemo/frmcustom/frmmultiaxes.h deleted file mode 100644 index 1c3d08b..0000000 --- a/third/qcustomplotdemo/frmcustom/frmmultiaxes.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef FRMMULTIAXES_H -#define FRMMULTIAXES_H - -#include -#include "qcustomplot.h" - -namespace Ui { -class frmMultiAxes; -} - -class frmMultiAxes : public QWidget -{ - Q_OBJECT - -public: - explicit frmMultiAxes(QWidget *parent = 0); - ~frmMultiAxes(); - -private: - Ui::frmMultiAxes *ui; - int count; - -private slots: - //初始化界面数据 - void initForm(); - //用户按下区域改变 - void selectionChangedByUser(); - //初始化图表控件 - void initPlot(QCustomPlot *customPlot, const QCPAxis::AxisType &type, int count); - //加载图表控件 - void loadPlot(QCustomPlot *customPlot, const QCPAxis::AxisType &type, int count); - //加载数据到图表控件 - void loadData(QCustomPlot *customPlot, int index); -}; - -#endif // FRMMULTIAXES_H diff --git a/third/qcustomplotdemo/frmcustom/frmmultiaxes.ui b/third/qcustomplotdemo/frmcustom/frmmultiaxes.ui deleted file mode 100644 index 8bf186a..0000000 --- a/third/qcustomplotdemo/frmcustom/frmmultiaxes.ui +++ /dev/null @@ -1,35 +0,0 @@ - - - frmMultiAxes - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - - - - - - - - - QCustomPlot - QWidget -
qcustomplot.h
- 1 -
-
- - -
diff --git a/third/qcustomplotdemo/frmexample/frmadvancedaxes.cpp b/third/qcustomplotdemo/frmexample/frmadvancedaxes.cpp index 0250813..5b55619 100644 --- a/third/qcustomplotdemo/frmexample/frmadvancedaxes.cpp +++ b/third/qcustomplotdemo/frmexample/frmadvancedaxes.cpp @@ -15,17 +15,19 @@ frmAdvancedAxes::~frmAdvancedAxes() void frmAdvancedAxes::initForm() { -#ifndef qcustomplot_v1_3 // configure axis rect: ui->customPlot->plotLayout()->clear(); // clear default axis rect so we can start from scratch + QCPAxisRect *wideAxisRect = new QCPAxisRect(ui->customPlot); wideAxisRect->setupFullAxesBox(true); wideAxisRect->axis(QCPAxis::atRight, 0)->setTickLabels(true); wideAxisRect->addAxis(QCPAxis::atLeft)->setTickLabelColor(QColor("#6050F8")); // add an extra axis on the left and color its numbers + QCPLayoutGrid *subLayout = new QCPLayoutGrid; ui->customPlot->plotLayout()->addElement(0, 0, wideAxisRect); // insert axis rect in first row ui->customPlot->plotLayout()->addElement(1, 0, subLayout); // sub layout in second row (grid layout will grow accordingly) //ui->customPlot->plotLayout()->setRowStretchFactor(1, 2); + // prepare axis rects that will be placed in the sublayout: QCPAxisRect *subRectLeft = new QCPAxisRect(ui->customPlot, false); // false means to not setup default axes QCPAxisRect *subRectRight = new QCPAxisRect(ui->customPlot, false); @@ -33,6 +35,7 @@ void frmAdvancedAxes::initForm() subLayout->addElement(0, 1, subRectRight); subRectRight->setMaximumSize(100, 100); // make bottom right axis rect size fixed 100x100 subRectRight->setMinimumSize(100, 100); // make bottom right axis rect size fixed 100x100 + // setup axes in sub layout axis rects: subRectLeft->addAxes(QCPAxis::atBottom | QCPAxis::atLeft); subRectRight->addAxes(QCPAxis::atBottom | QCPAxis::atRight); @@ -40,11 +43,13 @@ void frmAdvancedAxes::initForm() subRectRight->axis(QCPAxis::atRight)->ticker()->setTickCount(2); subRectRight->axis(QCPAxis::atBottom)->ticker()->setTickCount(2); subRectLeft->axis(QCPAxis::atBottom)->grid()->setVisible(true); + // synchronize the left and right margins of the top and bottom axis rects: QCPMarginGroup *marginGroup = new QCPMarginGroup(ui->customPlot); subRectLeft->setMarginGroup(QCP::msLeft, marginGroup); subRectRight->setMarginGroup(QCP::msRight, marginGroup); wideAxisRect->setMarginGroup(QCP::msLeft | QCP::msRight, marginGroup); + // move newly created axes on "axes" layer and grids on "grid" layer: foreach (QCPAxisRect *rect, ui->customPlot->axisRects()) { foreach (QCPAxis *axis, rect->axes()) { @@ -79,6 +84,7 @@ void frmAdvancedAxes::initForm() mainGraphCos->rescaleKeyAxis(); mainGraphCos->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, QPen(Qt::black), QBrush(Qt::white), 6)); mainGraphCos->setPen(QPen(QColor(120, 120, 120), 2)); + QCPGraph *mainGraphGauss = ui->customPlot->addGraph(wideAxisRect->axis(QCPAxis::atBottom), wideAxisRect->axis(QCPAxis::atLeft, 1)); mainGraphGauss->data()->set(dataGauss); mainGraphGauss->setPen(QPen(QColor("#8070B8"), 2)); @@ -103,12 +109,11 @@ void frmAdvancedAxes::initForm() subBars->setBrush(QColor("#705BE8")); subBars->keyAxis()->setSubTicks(false); subBars->rescaleAxes(); + // setup a ticker for subBars key axis that only gives integer ticks: QSharedPointer intTicker(new QCPAxisTickerFixed); intTicker->setTickStep(1.0); intTicker->setScaleStrategy(QCPAxisTickerFixed::ssMultiples); subBars->keyAxis()->setTicker(intTicker); - ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); -#endif } diff --git a/third/qcustomplotdemo/frmexample/frmbarchart.cpp b/third/qcustomplotdemo/frmexample/frmbarchart.cpp index 7918438..259b914 100644 --- a/third/qcustomplotdemo/frmexample/frmbarchart.cpp +++ b/third/qcustomplotdemo/frmexample/frmbarchart.cpp @@ -15,7 +15,6 @@ frmBarChart::~frmBarChart() void frmBarChart::initForm() { -#ifndef qcustomplot_v1_3 // set dark background gradient: QLinearGradient gradient(0, 0, 0, 400); gradient.setColorAt(0, QColor(90, 90, 90)); @@ -27,12 +26,14 @@ void frmBarChart::initForm() QCPBars *regen = new QCPBars(ui->customPlot->xAxis, ui->customPlot->yAxis); QCPBars *nuclear = new QCPBars(ui->customPlot->xAxis, ui->customPlot->yAxis); QCPBars *fossil = new QCPBars(ui->customPlot->xAxis, ui->customPlot->yAxis); + regen->setAntialiased(false); // gives more crisp, pixel aligned bar borders nuclear->setAntialiased(false); fossil->setAntialiased(false); regen->setStackingGap(1); nuclear->setStackingGap(1); fossil->setStackingGap(1); + // set names and colors: fossil->setName("Fossil fuels"); fossil->setPen(QPen(QColor(111, 9, 176).lighter(170))); @@ -43,6 +44,7 @@ void frmBarChart::initForm() regen->setName("Regenerative"); regen->setPen(QPen(QColor(0, 168, 140).lighter(130))); regen->setBrush(QColor(0, 168, 140)); + // stack bars on top of each other: nuclear->moveAbove(fossil); regen->moveAbove(nuclear); @@ -52,6 +54,7 @@ void frmBarChart::initForm() QVector labels; ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7; labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada"; + QSharedPointer textTicker(new QCPAxisTickerText); textTicker->addTicks(ticks, labels); ui->customPlot->xAxis->setTicker(textTicker); @@ -97,5 +100,4 @@ void frmBarChart::initForm() legendFont.setPointSize(10); ui->customPlot->legend->setFont(legendFont); ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); -#endif } diff --git a/third/qcustomplotdemo/frmexample/frmcolormap.cpp b/third/qcustomplotdemo/frmexample/frmcolormap.cpp index f33f3f3..1aa3ae0 100644 --- a/third/qcustomplotdemo/frmexample/frmcolormap.cpp +++ b/third/qcustomplotdemo/frmexample/frmcolormap.cpp @@ -27,6 +27,7 @@ void frmColorMap::initForm() int ny = 200; colorMap->data()->setSize(nx, ny); // we want the color map to have nx * ny data points colorMap->data()->setRange(QCPRange(-4, 4), QCPRange(-4, 4)); // and span the coordinate range -4..4 in both key (x) and value (y) dimensions + // now we assign some data, by accessing the QCPColorMapData instance of the color map: double x, y, z; for (int xIndex = 0; xIndex < nx; ++xIndex) { diff --git a/third/qcustomplotdemo/frmexample/frmdate.cpp b/third/qcustomplotdemo/frmexample/frmdate.cpp index 58dbd36..862ba2c 100644 --- a/third/qcustomplotdemo/frmexample/frmdate.cpp +++ b/third/qcustomplotdemo/frmexample/frmdate.cpp @@ -15,9 +15,9 @@ frmDate::~frmDate() void frmDate::initForm() { -#ifndef qcustomplot_v1_3 // set locale to english, so we get english month names: ui->customPlot->setLocale(QLocale(QLocale::English, QLocale::UnitedKingdom)); + // seconds of current time, we'll use it as starting point in time for data: double now = QDateTime::currentDateTime().toMSecsSinceEpoch() / 1000.0; srand(8); // set the random seed, so we always get the same random data @@ -40,21 +40,26 @@ void frmDate::initForm() } ui->customPlot->graph()->data()->set(timeData); } + // configure bottom axis to show date instead of number: QSharedPointer dateTicker(new QCPAxisTickerDateTime); dateTicker->setDateTimeFormat("d. MMMM\nyyyy"); ui->customPlot->xAxis->setTicker(dateTicker); + // configure left axis text labels: QSharedPointer textTicker(new QCPAxisTickerText); textTicker->addTick(10, "a bit\nlow"); textTicker->addTick(50, "quite\nhigh"); ui->customPlot->yAxis->setTicker(textTicker); + // set a more compact font size for bottom and left axis tick labels: ui->customPlot->xAxis->setTickLabelFont(QFont(QFont().family(), 8)); ui->customPlot->yAxis->setTickLabelFont(QFont(QFont().family(), 8)); + // set axis labels: ui->customPlot->xAxis->setLabel("Date"); ui->customPlot->yAxis->setLabel("Random wobbly lines value"); + // make top and right axes visible but without ticks and labels: ui->customPlot->xAxis2->setVisible(true); ui->customPlot->yAxis2->setVisible(true); @@ -62,12 +67,13 @@ void frmDate::initForm() ui->customPlot->yAxis2->setTicks(false); ui->customPlot->xAxis2->setTickLabels(false); ui->customPlot->yAxis2->setTickLabels(false); + // set axis ranges to show all data: ui->customPlot->xAxis->setRange(now, now + 24 * 3600 * 249); ui->customPlot->yAxis->setRange(0, 60); + // show legend with slightly transparent background brush: ui->customPlot->legend->setVisible(true); ui->customPlot->legend->setBrush(QColor(255, 255, 255, 150)); ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); -#endif } diff --git a/third/qcustomplotdemo/frmexample/frmfinancial.cpp b/third/qcustomplotdemo/frmexample/frmfinancial.cpp index c3647e1..2fc8403 100644 --- a/third/qcustomplotdemo/frmexample/frmfinancial.cpp +++ b/third/qcustomplotdemo/frmexample/frmfinancial.cpp @@ -60,10 +60,12 @@ void frmFinancial::initForm() volumeAxisRect->setMaximumSize(QSize(QWIDGETSIZE_MAX, 100)); volumeAxisRect->axis(QCPAxis::atBottom)->setLayer("axes"); volumeAxisRect->axis(QCPAxis::atBottom)->grid()->setLayer("grid"); + // bring bottom and main axis rect closer together: ui->customPlot->plotLayout()->setRowSpacing(0); volumeAxisRect->setAutoMargins(QCP::msLeft | QCP::msRight | QCP::msBottom); volumeAxisRect->setMargins(QMargins(0, 0, 0, 0)); + // create two bar plottables, for positive (green) and negative (red) volume bars: ui->customPlot->setAutoAddPlottableToLegend(false); QCPBars *volumePos = new QCPBars(volumeAxisRect->axis(QCPAxis::atBottom), volumeAxisRect->axis(QCPAxis::atLeft)); @@ -72,6 +74,7 @@ void frmFinancial::initForm() int v = std::rand() % 20000 + std::rand() % 20000 + std::rand() % 20000 - 10000 * 3; (v < 0 ? volumeNeg : volumePos)->addData(startTime + 3600 * 5.0 * i, qAbs(v)); // add data to either volumeNeg or volumePos, depending on sign of v } + volumePos->setWidth(3600 * 4); volumePos->setPen(Qt::NoPen); volumePos->setBrush(QColor(100, 180, 110)); @@ -82,6 +85,7 @@ void frmFinancial::initForm() // interconnect x axis ranges of main and bottom axis rects: connect(ui->customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), volumeAxisRect->axis(QCPAxis::atBottom), SLOT(setRange(QCPRange))); connect(volumeAxisRect->axis(QCPAxis::atBottom), SIGNAL(rangeChanged(QCPRange)), ui->customPlot->xAxis, SLOT(setRange(QCPRange))); + // configure axes of both main and bottom axis rect: QSharedPointer dateTimeTicker(new QCPAxisTickerDateTime); dateTimeTicker->setDateTimeSpec(Qt::UTC); @@ -100,6 +104,5 @@ void frmFinancial::initForm() QCPMarginGroup *group = new QCPMarginGroup(ui->customPlot); ui->customPlot->axisRect()->setMarginGroup(QCP::msLeft | QCP::msRight, group); volumeAxisRect->setMarginGroup(QCP::msLeft | QCP::msRight, group); - ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); } diff --git a/third/qcustomplotdemo/frmexample/frmitem.cpp b/third/qcustomplotdemo/frmexample/frmitem.cpp index 61f7297..e768828 100644 --- a/third/qcustomplotdemo/frmexample/frmitem.cpp +++ b/third/qcustomplotdemo/frmexample/frmitem.cpp @@ -15,7 +15,7 @@ frmItem::~frmItem() void frmItem::showEvent(QShowEvent *) { - dataTimer.start(0); // Interval 0 means to refresh as fast as possible + dataTimer.start(0); } void frmItem::hideEvent(QHideEvent *) @@ -35,6 +35,7 @@ void frmItem::initForm() x[i] = i / (double)(n - 1) * 34 - 17; y[i] = qExp(-x[i] * x[i] / 20.0) * qSin(k * x[i] + phase); } + graph->setData(x, y); graph->setPen(QPen(Qt::blue)); graph->rescaleKeyAxis(); @@ -150,10 +151,9 @@ void frmItem::bracketDataSlot() x[i] = i / (double)(n - 1) * 34 - 17; y[i] = qExp(-x[i] * x[i] / 20.0) * qSin(k * x[i] + phase); } + ui->customPlot->graph()->setData(x, y); - phaseTracer->setGraphKey((8 * M_PI + fmod(M_PI * 1.5 - phase, 6 * M_PI)) / k); - ui->customPlot->replot(); // calculate frames per second: diff --git a/third/qcustomplotdemo/frmexample/frmlinestyle.cpp b/third/qcustomplotdemo/frmexample/frmlinestyle.cpp index 649658f..934f7c0 100644 --- a/third/qcustomplotdemo/frmexample/frmlinestyle.cpp +++ b/third/qcustomplotdemo/frmexample/frmlinestyle.cpp @@ -17,9 +17,11 @@ void frmLineStyle::initForm() { ui->customPlot->legend->setVisible(true); ui->customPlot->legend->setFont(QFont("Helvetica", 9)); + QPen pen; QStringList lineNames; lineNames << "lsNone" << "lsLine" << "lsStepLeft" << "lsStepRight" << "lsStepCenter" << "lsImpulse"; + // add graphs with different line styles: for (int i = QCPGraph::lsNone; i <= QCPGraph::lsImpulse; ++i) { ui->customPlot->addGraph(); @@ -28,23 +30,28 @@ void frmLineStyle::initForm() ui->customPlot->graph()->setName(lineNames.at(i - QCPGraph::lsNone)); ui->customPlot->graph()->setLineStyle((QCPGraph::LineStyle)i); ui->customPlot->graph()->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, 5)); + // generate data: QVector x(15), y(15); for (int j = 0; j < 15; ++j) { x[j] = j / 15.0 * 5 * 3.14 + 0.01; y[j] = 7 * qSin(x[j]) / x[j] - (i - QCPGraph::lsNone) * 5 + (QCPGraph::lsImpulse) * 5 + 2; } + ui->customPlot->graph()->setData(x, y); ui->customPlot->graph()->rescaleAxes(true); } + // zoom out a bit: ui->customPlot->yAxis->scaleRange(1.1, ui->customPlot->yAxis->range().center()); ui->customPlot->xAxis->scaleRange(1.1, ui->customPlot->xAxis->range().center()); + // set blank axis lines: ui->customPlot->xAxis->setTicks(false); ui->customPlot->yAxis->setTicks(true); ui->customPlot->xAxis->setTickLabels(false); ui->customPlot->yAxis->setTickLabels(true); + // make top right axes clones of bottom left axes: ui->customPlot->axisRect()->setupFullAxesBox(); ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); diff --git a/third/qcustomplotdemo/frmexample/frmlogarithmic.cpp b/third/qcustomplotdemo/frmexample/frmlogarithmic.cpp index 341716e..5428b22 100644 --- a/third/qcustomplotdemo/frmexample/frmlogarithmic.cpp +++ b/third/qcustomplotdemo/frmexample/frmlogarithmic.cpp @@ -17,6 +17,7 @@ void frmLogarithmic::initForm() { ui->customPlot->setNoAntialiasingOnDrag(true); // more performance/responsiveness during dragging ui->customPlot->addGraph(); + QPen pen; pen.setColor(QColor(255, 170, 100)); pen.setWidth(2); @@ -54,6 +55,7 @@ void frmLogarithmic::initForm() dataPlusSinExp[i].key = i / 10.0; dataPlusSinExp[i].value = qSin(dataPlusSinExp[i].key) * qExp(dataPlusSinExp[i].key); } + for (int i = 0; i < dataFactorialCount; ++i) { dataFactorial[i].key = i; dataFactorial[i].value = 1.0; @@ -61,6 +63,7 @@ void frmLogarithmic::initForm() dataFactorial[i].value *= k; // factorial } } + ui->customPlot->graph(0)->data()->set(dataLinear); ui->customPlot->graph(1)->data()->set(dataMinusSinExp); ui->customPlot->graph(2)->data()->set(dataPlusSinExp); @@ -70,6 +73,7 @@ void frmLogarithmic::initForm() ui->customPlot->xAxis->grid()->setSubGridVisible(true); ui->customPlot->yAxis->setScaleType(QCPAxis::stLogarithmic); ui->customPlot->yAxis2->setScaleType(QCPAxis::stLogarithmic); + QSharedPointer logTicker(new QCPAxisTickerLog); ui->customPlot->yAxis->setTicker(logTicker); ui->customPlot->yAxis2->setTicker(logTicker); @@ -87,7 +91,5 @@ void frmLogarithmic::initForm() ui->customPlot->legend->setVisible(true); ui->customPlot->legend->setBrush(QBrush(QColor(255, 255, 255, 150))); ui->customPlot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignLeft | Qt::AlignTop); // make legend align in top left corner or axis rect - - // make range draggable and zoomable: ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); } diff --git a/third/qcustomplotdemo/frmexample/frmmultiaxis.cpp b/third/qcustomplotdemo/frmexample/frmmultiaxis.cpp index 1f1d902..1d0122e 100644 --- a/third/qcustomplotdemo/frmexample/frmmultiaxis.cpp +++ b/third/qcustomplotdemo/frmexample/frmmultiaxis.cpp @@ -41,6 +41,7 @@ void frmMultiAxis::initForm() ui->customPlot->graph(1)->setLineStyle(QCPGraph::lsStepCenter); ui->customPlot->graph(1)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, Qt::red, Qt::white, 7)); ui->customPlot->graph(1)->setName("Bottom maxwell function"); + QCPErrorBars *errorBars = new QCPErrorBars(ui->customPlot->xAxis, ui->customPlot->yAxis); errorBars->removeFromLegend(); errorBars->setDataPlottable(ui->customPlot->graph(1)); @@ -75,15 +76,18 @@ void frmMultiAxis::initForm() QVector x2(250), y2(250); QVector x3(250), y3(250); QVector x4(250), y4(250); + for (int i = 0; i < 25; ++i) { // data for graph 0 x0[i] = 3 * i / 25.0; y0[i] = qExp(-x0[i] * x0[i] * 0.8) * (x0[i] * x0[i] + x0[i]); } + for (int i = 0; i < 15; ++i) { // data for graph 1 x1[i] = 3 * i / 15.0;; y1[i] = qExp(-x1[i] * x1[i]) * (x1[i] * x1[i]) * 2.6; y1err[i] = y1[i] * 0.25; } + for (int i = 0; i < 250; ++i) { // data for graphs 2, 3 and 4 x2[i] = i / 250.0 * 3 * M_PI; x3[i] = x2[i]; @@ -100,19 +104,23 @@ void frmMultiAxis::initForm() ui->customPlot->graph(2)->setData(x2, y2); ui->customPlot->graph(3)->setData(x3, y3); ui->customPlot->graph(4)->setData(x4, y4); + // activate top and right axes, which are invisible by default: ui->customPlot->xAxis2->setVisible(true); ui->customPlot->yAxis2->setVisible(true); + // set ranges appropriate to show data: ui->customPlot->xAxis->setRange(0, 2.7); ui->customPlot->yAxis->setRange(0, 2.6); ui->customPlot->xAxis2->setRange(0, 3.0 * M_PI); ui->customPlot->yAxis2->setRange(-70, 35); + // set pi ticks on top axis: ui->customPlot->xAxis2->setTicker(QSharedPointer(new QCPAxisTickerPi)); // add title layout element: ui->customPlot->plotLayout()->insertRow(0); ui->customPlot->plotLayout()->addElement(0, 0, new QCPTextElement(ui->customPlot, "Way too many graphs in one plot", QFont("sans", 12, QFont::Bold))); + // set labels: ui->customPlot->xAxis->setLabel("Bottom axis with outward ticks"); ui->customPlot->yAxis->setLabel("Left axis label"); diff --git a/third/qcustomplotdemo/frmexample/frmparametriccurve.cpp b/third/qcustomplotdemo/frmexample/frmparametriccurve.cpp index 893d43f..2a23982 100644 --- a/third/qcustomplotdemo/frmexample/frmparametriccurve.cpp +++ b/third/qcustomplotdemo/frmexample/frmparametriccurve.cpp @@ -19,6 +19,7 @@ void frmParametricCurve::initForm() QCPCurve *fermatSpiral1 = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis); QCPCurve *fermatSpiral2 = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis); QCPCurve *deltoidRadial = new QCPCurve(ui->customPlot->xAxis, ui->customPlot->yAxis); + // generate the curve data points: const int pointCount = 500; QVector dataSpiral1(pointCount), dataSpiral2(pointCount), dataDeltoid(pointCount); @@ -29,21 +30,25 @@ void frmParametricCurve::initForm() dataSpiral2[i] = QCPCurveData(i, -dataSpiral1[i].key, -dataSpiral1[i].value); dataDeltoid[i] = QCPCurveData(i, 2 * qCos(2 * theta) + qCos(1 * theta) + 2 * qSin(theta), 2 * qSin(2 * theta) - qSin(1 * theta)); } + // pass the data to the curves; we know t (i in loop above) is ascending, so set alreadySorted=true (saves an extra internal sort): fermatSpiral1->data()->set(dataSpiral1, true); fermatSpiral2->data()->set(dataSpiral2, true); deltoidRadial->data()->set(dataDeltoid, true); + // color the curves: fermatSpiral1->setPen(QPen(Qt::blue)); fermatSpiral1->setBrush(QBrush(QColor(0, 0, 255, 20))); fermatSpiral2->setPen(QPen(QColor(255, 120, 0))); fermatSpiral2->setBrush(QBrush(QColor(255, 120, 0, 30))); + QRadialGradient radialGrad(QPointF(310, 180), 200); radialGrad.setColorAt(0, QColor(170, 20, 240, 100)); radialGrad.setColorAt(0.5, QColor(20, 10, 255, 40)); radialGrad.setColorAt(1, QColor(120, 20, 240, 10)); deltoidRadial->setPen(QPen(QColor(170, 20, 240))); deltoidRadial->setBrush(QBrush(radialGrad)); + // set some basic ui->customPlot config: ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables); ui->customPlot->axisRect()->setupFullAxesBox(); diff --git a/third/qcustomplotdemo/frmexample/frmpolarplot.cpp b/third/qcustomplotdemo/frmexample/frmpolarplot.cpp index 74a6545..e2fa63b 100644 --- a/third/qcustomplotdemo/frmexample/frmpolarplot.cpp +++ b/third/qcustomplotdemo/frmexample/frmpolarplot.cpp @@ -28,6 +28,7 @@ void frmPolarPlot::initForm() ticker->setTickCount(8); polarAxis->setTicker(ticker); */ + ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); angularAxis->setRangeDrag(false); angularAxis->setTickLabelMode(QCPPolarAxisAngular::lmUpright); diff --git a/third/qcustomplotdemo/frmexample/frmquadratic.cpp b/third/qcustomplotdemo/frmexample/frmquadratic.cpp index fc82161..462d02f 100644 --- a/third/qcustomplotdemo/frmexample/frmquadratic.cpp +++ b/third/qcustomplotdemo/frmexample/frmquadratic.cpp @@ -21,6 +21,7 @@ void frmQuadratic::initForm() x[i] = i / 50.0 - 1; // x goes from -1 to 1 y[i] = x[i] * x[i]; // let's plot a quadratic function } + // create graph and assign data to it: ui->customPlot->addGraph(); ui->customPlot->graph(0)->setData(x, y); diff --git a/third/qcustomplotdemo/frmexample/frmrealtimedata.cpp b/third/qcustomplotdemo/frmexample/frmrealtimedata.cpp index 0fe5d30..753c7f2 100644 --- a/third/qcustomplotdemo/frmexample/frmrealtimedata.cpp +++ b/third/qcustomplotdemo/frmexample/frmrealtimedata.cpp @@ -16,7 +16,7 @@ frmRealtimeData::~frmRealtimeData() void frmRealtimeData::showEvent(QShowEvent *) { timeStart = QTime::currentTime(); - dataTimer.start(0); // Interval 0 means to refresh as fast as possible + dataTimer.start(0); } void frmRealtimeData::hideEvent(QHideEvent *) @@ -35,6 +35,7 @@ void frmRealtimeData::initForm() ui->customPlot->yAxis->setTickLabelFont(font); ui->customPlot->legend->setFont(font); */ + ui->customPlot->addGraph(); // blue line ui->customPlot->graph(0)->setPen(QPen(QColor(40, 110, 255))); ui->customPlot->addGraph(); // red line @@ -51,7 +52,7 @@ void frmRealtimeData::initForm() connect(ui->customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), ui->customPlot->yAxis2, SLOT(setRange(QCPRange))); // setup a timer that repeatedly calls MainWindow::realtimeDataSlot: - connect(&dataTimer, SIGNAL(timeout()), this, SLOT(realtimeDataSlot())); + connect(&dataTimer, SIGNAL(timeout()), this, SLOT(realtimeDataSlot())); } void frmRealtimeData::realtimeDataSlot() @@ -68,6 +69,7 @@ void frmRealtimeData::realtimeDataSlot() //ui->customPlot->graph(1)->rescaleValueAxis(true); lastPointKey = key; } + // make key axis range scroll with the data (at a constant range size of 8): ui->customPlot->xAxis->setRange(key, 8, Qt::AlignRight); ui->customPlot->replot(); diff --git a/third/qcustomplotdemo/frmexample/frmscatterpixmap.cpp b/third/qcustomplotdemo/frmexample/frmscatterpixmap.cpp index d5e280f..e4e6f29 100644 --- a/third/qcustomplotdemo/frmexample/frmscatterpixmap.cpp +++ b/third/qcustomplotdemo/frmexample/frmscatterpixmap.cpp @@ -18,6 +18,7 @@ void frmScatterPixmap::initForm() ui->customPlot->axisRect()->setBackground(QPixmap(":/image/bg1.jpg")); ui->customPlot->addGraph(); ui->customPlot->graph()->setLineStyle(QCPGraph::lsLine); + QPen pen; pen.setColor(QColor(255, 200, 20, 200)); pen.setStyle(Qt::DashLine); @@ -27,6 +28,7 @@ void frmScatterPixmap::initForm() ui->customPlot->graph()->setScatterStyle(QCPScatterStyle(QPixmap(":/image/data.png"))); // set graph name, will show up in legend next to icon: ui->customPlot->graph()->setName("Data from Photovoltaic\nenergy barometer 2011"); + // set data: QVector year, value; year << 2005 << 2006 << 2007 << 2008 << 2009 << 2010 << 2011; @@ -49,6 +51,7 @@ void frmScatterPixmap::initForm() ui->customPlot->yAxis2->setSubTicks(false); ui->customPlot->xAxis->setRange(2004.5, 2011.5); ui->customPlot->yAxis->setRange(0, 52); + // setup legend: ui->customPlot->legend->setFont(QFont(font().family(), 7)); ui->customPlot->legend->setIconSize(50, 20); diff --git a/third/qcustomplotdemo/frmexample/frmscatterstyle.cpp b/third/qcustomplotdemo/frmexample/frmscatterstyle.cpp index 09fab54..4c62eeb 100644 --- a/third/qcustomplotdemo/frmexample/frmscatterstyle.cpp +++ b/third/qcustomplotdemo/frmexample/frmscatterstyle.cpp @@ -70,6 +70,7 @@ void frmScatterStyle::initForm() ui->customPlot->graph()->setScatterStyle(QCPScatterStyle(customScatterPath, QPen(Qt::black, 0), QColor(40, 70, 255, 50), 10)); } } + // set blank axis lines: ui->customPlot->rescaleAxes(); ui->customPlot->xAxis->setTicks(false); diff --git a/third/qcustomplotdemo/frmexample/frmsimple.cpp b/third/qcustomplotdemo/frmexample/frmsimple.cpp index 39178d1..c957180 100644 --- a/third/qcustomplotdemo/frmexample/frmsimple.cpp +++ b/third/qcustomplotdemo/frmexample/frmsimple.cpp @@ -21,6 +21,7 @@ void frmSimple::initForm() ui->customPlot->graph(0)->setBrush(QBrush(QColor(0, 0, 255, 20))); // first graph will be filled with translucent blue ui->customPlot->addGraph(); ui->customPlot->graph(1)->setPen(QPen(Qt::red)); // line color red for second graph + // generate some points of data (y0 for first, y1 for second graph): QVector x(251), y0(251), y1(251); for (int i = 0; i < 251; ++i) { @@ -28,15 +29,18 @@ void frmSimple::initForm() y0[i] = qExp(-i / 150.0) * qCos(i / 10.0); // exponentially decaying cosine y1[i] = qExp(-i / 150.0); // exponential envelope } + // configure right and top axis to show ticks but no labels: // (see QCPAxisRect::setupFullAxesBox for a quicker method to do this) ui->customPlot->xAxis2->setVisible(true); ui->customPlot->xAxis2->setTickLabels(false); ui->customPlot->yAxis2->setVisible(true); ui->customPlot->yAxis2->setTickLabels(false); + // make left and bottom axes always transfer their ranges to right and top axes: connect(ui->customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), ui->customPlot->xAxis2, SLOT(setRange(QCPRange))); connect(ui->customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), ui->customPlot->yAxis2, SLOT(setRange(QCPRange))); + // pass data points to graphs: ui->customPlot->graph(0)->setData(x, y0); ui->customPlot->graph(1)->setData(x, y1); diff --git a/third/qcustomplotdemo/frmexample/frmsincscatter.cpp b/third/qcustomplotdemo/frmexample/frmsincscatter.cpp index a719af8..4c3cea6 100644 --- a/third/qcustomplotdemo/frmexample/frmsincscatter.cpp +++ b/third/qcustomplotdemo/frmexample/frmsincscatter.cpp @@ -21,6 +21,7 @@ void frmSincScatter::initForm() ui->customPlot->setLocale(QLocale(QLocale::English, QLocale::UnitedKingdom)); // add confidence band graphs: ui->customPlot->addGraph(); + QPen pen; pen.setStyle(Qt::DotLine); pen.setWidth(1); @@ -32,6 +33,7 @@ void frmSincScatter::initForm() ui->customPlot->legend->removeItem(ui->customPlot->legend->itemCount() - 1); // don't show two confidence band graphs in legend ui->customPlot->graph(1)->setPen(pen); ui->customPlot->graph(0)->setChannelFillGraph(ui->customPlot->graph(1)); + // add theory curve graph: ui->customPlot->addGraph(); pen.setStyle(Qt::DashLine); @@ -39,12 +41,14 @@ void frmSincScatter::initForm() pen.setColor(Qt::red); ui->customPlot->graph(2)->setPen(pen); ui->customPlot->graph(2)->setName("Theory Curve"); + // add data point graph: ui->customPlot->addGraph(); ui->customPlot->graph(3)->setPen(QPen(Qt::blue)); ui->customPlot->graph(3)->setName("Measurement"); ui->customPlot->graph(3)->setLineStyle(QCPGraph::lsNone); ui->customPlot->graph(3)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCross, 4)); + // add error bars: QCPErrorBars *errorBars = new QCPErrorBars(ui->customPlot->xAxis, ui->customPlot->yAxis); errorBars->removeFromLegend(); @@ -62,6 +66,7 @@ void frmSincScatter::initForm() yConfLower[i] = y0[i] - 0.15; x0[i] *= 1000; } + QVector x1(50), y1(50), y1err(50); for (int i = 0; i < 50; ++i) { // generate a gaussian distributed random number: @@ -74,6 +79,7 @@ void frmSincScatter::initForm() x1[i] *= 1000; y1err[i] = 0.15; } + // pass data to graphs and let Qui->customPlot determine the axes ranges so the whole thing is visible: ui->customPlot->graph(0)->setData(x0, yConfUpper); ui->customPlot->graph(1)->setData(x0, yConfLower); @@ -82,12 +88,14 @@ void frmSincScatter::initForm() errorBars->setData(y1err); ui->customPlot->graph(2)->rescaleAxes(); ui->customPlot->graph(3)->rescaleAxes(true); + // setup look of bottom tick labels: ui->customPlot->xAxis->setTickLabelRotation(30); ui->customPlot->xAxis->ticker()->setTickCount(9); ui->customPlot->xAxis->setNumberFormat("ebc"); ui->customPlot->xAxis->setNumberPrecision(1); ui->customPlot->xAxis->moveRange(-10); + // make top right axes clones of bottom left axes. Looks prettier: ui->customPlot->axisRect()->setupFullAxesBox(); ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); diff --git a/third/qcustomplotdemo/frmexample/frmstyled.cpp b/third/qcustomplotdemo/frmexample/frmstyled.cpp index 28c3916..12c3e01 100644 --- a/third/qcustomplotdemo/frmexample/frmstyled.cpp +++ b/third/qcustomplotdemo/frmexample/frmstyled.cpp @@ -20,18 +20,22 @@ void frmStyled::initForm() QVector x2(100), y2(100); QVector x3(20), y3(20); QVector x4(20), y4(20); + for (int i = 0; i < x1.size(); ++i) { x1[i] = i / (double)(x1.size() - 1) * 10; y1[i] = qCos(x1[i] * 0.8 + qSin(x1[i] * 0.16 + 1.0)) * qSin(x1[i] * 0.54) + 1.4; } + for (int i = 0; i < x2.size(); ++i) { x2[i] = i / (double)(x2.size() - 1) * 10; y2[i] = qCos(x2[i] * 0.85 + qSin(x2[i] * 0.165 + 1.1)) * qSin(x2[i] * 0.50) + 1.7; } + for (int i = 0; i < x3.size(); ++i) { x3[i] = i / (double)(x3.size() - 1) * 10; y3[i] = 0.05 + 3 * (0.5 + qCos(x3[i] * x3[i] * 0.2 + 2) * 0.5) / (double)(x3[i] + 0.7) + std::rand() / (double)RAND_MAX * 0.01; } + for (int i = 0; i < x4.size(); ++i) { x4[i] = x3[i]; y4[i] = (0.5 - y3[i]) + ((x4[i] - 2) * (x4[i] - 2) * 0.02); diff --git a/third/qcustomplotdemo/frmexample2/frmaxistag.cpp b/third/qcustomplotdemo/frmexample2/frmaxistag.cpp index c0b3a8d..12b1ff0 100644 --- a/third/qcustomplotdemo/frmexample2/frmaxistag.cpp +++ b/third/qcustomplotdemo/frmexample2/frmaxistag.cpp @@ -13,21 +13,29 @@ frmAxisTag::~frmAxisTag() delete ui; } +void frmAxisTag::showEvent(QShowEvent *) +{ + dataTimer.start(50); +} + +void frmAxisTag::hideEvent(QHideEvent *) +{ + dataTimer.stop(); +} + void frmAxisTag::initForm() { - mPlot = ui->customPlot; - // configure plot to have two right axes: - mPlot->yAxis->setTickLabels(false); - connect(mPlot->yAxis2, SIGNAL(rangeChanged(QCPRange)), mPlot->yAxis, SLOT(setRange(QCPRange))); // left axis only mirrors inner right axis - mPlot->yAxis2->setVisible(true); - mPlot->axisRect()->addAxis(QCPAxis::atRight); - mPlot->axisRect()->axis(QCPAxis::atRight, 0)->setPadding(30); // add some padding to have space for tags - mPlot->axisRect()->axis(QCPAxis::atRight, 1)->setPadding(30); // add some padding to have space for tags + ui->customPlot->yAxis->setTickLabels(false); + connect(ui->customPlot->yAxis2, SIGNAL(rangeChanged(QCPRange)), ui->customPlot->yAxis, SLOT(setRange(QCPRange))); // left axis only mirrors inner right axis + ui->customPlot->yAxis2->setVisible(true); + ui->customPlot->axisRect()->addAxis(QCPAxis::atRight); + ui->customPlot->axisRect()->axis(QCPAxis::atRight, 0)->setPadding(30); // add some padding to have space for tags + ui->customPlot->axisRect()->axis(QCPAxis::atRight, 1)->setPadding(30); // add some padding to have space for tags // create graphs: - mGraph1 = mPlot->addGraph(mPlot->xAxis, mPlot->axisRect()->axis(QCPAxis::atRight, 0)); - mGraph2 = mPlot->addGraph(mPlot->xAxis, mPlot->axisRect()->axis(QCPAxis::atRight, 1)); + mGraph1 = ui->customPlot->addGraph(ui->customPlot->xAxis, ui->customPlot->axisRect()->axis(QCPAxis::atRight, 0)); + mGraph2 = ui->customPlot->addGraph(ui->customPlot->xAxis, ui->customPlot->axisRect()->axis(QCPAxis::atRight, 1)); mGraph1->setPen(QPen(QColor(250, 120, 0))); mGraph2->setPen(QPen(QColor(0, 180, 60))); @@ -37,8 +45,7 @@ void frmAxisTag::initForm() mTag2 = new AxisTag(mGraph2->valueAxis()); mTag2->setPen(mGraph2->pen()); - connect(&mDataTimer, SIGNAL(timeout()), this, SLOT(timerSlot())); - mDataTimer.start(40); + connect(&dataTimer, SIGNAL(timeout()), this, SLOT(timerSlot())); } void frmAxisTag::timerSlot() @@ -50,10 +57,10 @@ void frmAxisTag::timerSlot() mGraph2->addData(count2, qCos(count2 / 50.0) + qSin(count2 / 50.0 / 0.4364) * 0.15); // make key axis range scroll with the data: - mPlot->xAxis->rescale(); + ui->customPlot->xAxis->rescale(); mGraph1->rescaleValueAxis(false, true); mGraph2->rescaleValueAxis(false, true); - mPlot->xAxis->setRange(mPlot->xAxis->range().upper, 100, Qt::AlignRight); + ui->customPlot->xAxis->setRange(ui->customPlot->xAxis->range().upper, 100, Qt::AlignRight); // update the vertical axis tag positions and texts to match the rightmost data point of the graphs: double graph1Value = mGraph1->dataMainValue(mGraph1->dataCount() - 1); @@ -63,5 +70,5 @@ void frmAxisTag::timerSlot() mTag1->setText(QString::number(graph1Value, 'f', 2)); mTag2->setText(QString::number(graph2Value, 'f', 2)); - mPlot->replot(); + ui->customPlot->replot(); } diff --git a/third/qcustomplotdemo/frmexample2/frmaxistag.h b/third/qcustomplotdemo/frmexample2/frmaxistag.h index 9578bcb..94a7044 100644 --- a/third/qcustomplotdemo/frmexample2/frmaxistag.h +++ b/third/qcustomplotdemo/frmexample2/frmaxistag.h @@ -17,14 +17,17 @@ public: explicit frmAxisTag(QWidget *parent = 0); ~frmAxisTag(); +protected: + void showEvent(QShowEvent *); + void hideEvent(QHideEvent *); + private: Ui::frmAxisTag *ui; - QCustomPlot *mPlot; QPointer mGraph1; QPointer mGraph2; AxisTag *mTag1; AxisTag *mTag2; - QTimer mDataTimer; + QTimer dataTimer; private slots: void initForm(); diff --git a/third/qcustomplotdemo/frmexample2/frmscrollbar.cpp b/third/qcustomplotdemo/frmexample2/frmscrollbar.cpp index be365f8..5751f7e 100644 --- a/third/qcustomplotdemo/frmexample2/frmscrollbar.cpp +++ b/third/qcustomplotdemo/frmexample2/frmscrollbar.cpp @@ -16,21 +16,23 @@ frmScrollBar::~frmScrollBar() void frmScrollBar::initForm() { // The following plot setup is mostly taken from the plot demos: - ui->plot->addGraph(); - ui->plot->graph()->setPen(QPen(Qt::blue)); - ui->plot->graph()->setBrush(QBrush(QColor(0, 0, 255, 20))); - ui->plot->addGraph(); - ui->plot->graph()->setPen(QPen(Qt::red)); + ui->customPlot->addGraph(); + ui->customPlot->graph()->setPen(QPen(Qt::blue)); + ui->customPlot->graph()->setBrush(QBrush(QColor(0, 0, 255, 20))); + ui->customPlot->addGraph(); + ui->customPlot->graph()->setPen(QPen(Qt::red)); + QVector x(500), y0(500), y1(500); for (int i = 0; i < 500; ++i) { x[i] = (i / 499.0 - 0.5) * 10; y0[i] = qExp(-x[i] * x[i] * 0.25) * qSin(x[i] * 5) * 5; y1[i] = qExp(-x[i] * x[i] * 0.25) * 5; } - ui->plot->graph(0)->setData(x, y0); - ui->plot->graph(1)->setData(x, y1); - ui->plot->axisRect()->setupFullAxesBox(true); - ui->plot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); + + ui->customPlot->graph(0)->setData(x, y0); + ui->customPlot->graph(1)->setData(x, y1); + ui->customPlot->axisRect()->setupFullAxesBox(true); + ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); // configure scroll bars: // Since scroll bars only support integer values, we'll set a high default range of -500..500 and @@ -43,27 +45,27 @@ void frmScrollBar::initForm() // create connection between axes and scroll bars: connect(ui->horizontalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(horzScrollBarChanged(int))); connect(ui->verticalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(vertScrollBarChanged(int))); - connect(ui->plot->xAxis, SIGNAL(rangeChanged(QCPRange)), this, SLOT(xAxisChanged(QCPRange))); - connect(ui->plot->yAxis, SIGNAL(rangeChanged(QCPRange)), this, SLOT(yAxisChanged(QCPRange))); + connect(ui->customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), this, SLOT(xAxisChanged(QCPRange))); + connect(ui->customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), this, SLOT(yAxisChanged(QCPRange))); // initialize axis range (and scroll bar positions via signals we just connected): - ui->plot->xAxis->setRange(0, 6, Qt::AlignCenter); - ui->plot->yAxis->setRange(0, 10, Qt::AlignCenter); + ui->customPlot->xAxis->setRange(0, 6, Qt::AlignCenter); + ui->customPlot->yAxis->setRange(0, 10, Qt::AlignCenter); } void frmScrollBar::horzScrollBarChanged(int value) { - if (qAbs(ui->plot->xAxis->range().center() - value / 100.0) > 0.01) { // if user is dragging plot, we don't want to replot twice - ui->plot->xAxis->setRange(value / 100.0, ui->plot->xAxis->range().size(), Qt::AlignCenter); - ui->plot->replot(); + if (qAbs(ui->customPlot->xAxis->range().center() - value / 100.0) > 0.01) { // if user is dragging plot, we don't want to replot twice + ui->customPlot->xAxis->setRange(value / 100.0, ui->customPlot->xAxis->range().size(), Qt::AlignCenter); + ui->customPlot->replot(); } } void frmScrollBar::vertScrollBarChanged(int value) { - if (qAbs(ui->plot->yAxis->range().center() + value / 100.0) > 0.01) { // if user is dragging plot, we don't want to replot twice - ui->plot->yAxis->setRange(-value / 100.0, ui->plot->yAxis->range().size(), Qt::AlignCenter); - ui->plot->replot(); + if (qAbs(ui->customPlot->yAxis->range().center() + value / 100.0) > 0.01) { // if user is dragging plot, we don't want to replot twice + ui->customPlot->yAxis->setRange(-value / 100.0, ui->customPlot->yAxis->range().size(), Qt::AlignCenter); + ui->customPlot->replot(); } } diff --git a/third/qcustomplotdemo/frmexample2/frmscrollbar.ui b/third/qcustomplotdemo/frmexample2/frmscrollbar.ui index c70bf68..4c0a86f 100644 --- a/third/qcustomplotdemo/frmexample2/frmscrollbar.ui +++ b/third/qcustomplotdemo/frmexample2/frmscrollbar.ui @@ -15,7 +15,7 @@ - + 0 @@ -44,7 +44,7 @@ QCustomPlot QWidget -
qcustomplot.h
+
qcustomplot.h
1
diff --git a/third/qcustomplotdemo/readme.md b/third/qcustomplotdemo/readme.md index d8b3f97..83e8394 100644 --- a/third/qcustomplotdemo/readme.md +++ b/third/qcustomplotdemo/readme.md @@ -83,7 +83,4 @@ ![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/third/qcustomplotdemo/snap/23.jpg) ### 2.24 滚动条曲线 -![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/third/qcustomplotdemo/snap/24.jpg) - -### 2.25 多坐标轴图 -![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/third/qcustomplotdemo/snap/25.jpg) \ No newline at end of file +![avatar](https://gitee.com/feiyangqingyun/QWidgetDemo/raw/master/third/qcustomplotdemo/snap/24.jpg) \ No newline at end of file diff --git a/third/qcustomplotdemo/snap/25.jpg b/third/qcustomplotdemo/snap/25.jpg deleted file mode 100644 index 0fa6db0cdac25a72a8c929313286b5dd2233970a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111202 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
}F@Dw%~7)j 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 z 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 XQvd$?AD;c+GvvQtA;d>}{x