Вопросы по QCustomPlot
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.09.21 16:25
Оценка:
Здравствуйте!

В общем, более менее он у меня заработал, но кое-что я не понял как сделать.

У меня один customPlot, на котором я хочу вывести два графика с разными шкалами и диапазонами значений.

Попробовал передрать отсюда, только для двух графиков вместо пяти — https://www.qcustomplot.com/index.php/demos/multiaxisdemo.

Не работает. 1) Не отображаются метки справа рядом с тикерами для второго графика. 2) Размерность графиков почему-то получилась одна и та же. У меня первый график — температура, 0-100, второй — давление в барах, 0-4, так график давления болтается где-то внизу, в районе пары градусов

Может, это из-за того, что я пытаюсь multiaxisdemo скрестить с https://www.qcustomplot.com/index.php/demos/realtimedatademo ?

m_customPlot->yAxis2->setVisible(true);
 
m_customPlot->addGraph( m_customPlot->xAxis , m_customPlot->yAxis ); // red line - temperature graph(0)
m_customPlot->graph(0)->setPen(QPen(QColor(255, 110, 40)));
m_customPlot->yAxis->setRange( 0.0, 100.0 ); // temperature scale at left
m_customPlot->yAxis->setLabel("Temperature");
m_customPlot->graph(0)->setName( tr("Temperature") );
 
m_customPlot->addGraph( m_customPlot->xAxis , m_customPlot->yAxis2 ); // blue line - pressure graph(1)
m_customPlot->graph(1)->setPen(QPen(QColor(40, 110, 255)));
m_customPlot->yAxis2->setRange(0.0, 4.0); // Pressure scale at right
m_customPlot->yAxis2->setLabel("Pressure");
m_customPlot->graph(1)->setName( tr("Pressure") );
m_customPlot->yAxis2->setTickLength(m_customPlot->yAxis->tickLengthIn(), 0);
m_customPlot->yAxis2->setSubTickLength(m_customPlot->yAxis->subTickLengthIn(), 0);
m_customPlot->yAxis2->setVisible(true);
m_customPlot->yAxis2->setTickLabels(true);
m_customPlot->yAxis2->ticker()->setTickCount(4);
m_customPlot->yAxis2->ticker()->setTickOrigin(0.0);
 
QSharedPointer<QCPAxisTickerTime> timeTicker(new QCPAxisTickerTime);
timeTicker->setTimeFormat("%h:%m:%s");
m_customPlot->xAxis->setTicker(timeTicker);
m_customPlot->axisRect()->setupFullAxesBox();


Есть тут кто-нибудь, кто с QCustomPlot плотно работал?

Чего я не так делаю?
Маньяк Робокряк колесит по городу
Re: Вопросы по QCustomPlot
От: Иванников Сергей  
Дата: 15.10.21 09:23
Оценка:
Здравствуйте, Marty, Вы писали:

M>В общем, более менее он у меня заработал, но кое-что я не понял как сделать.


M>Чего я не так делаю?


Вызов setupFullAxesBox() убрать или вызывать перед настройкой шкал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.