Построение полулоговой диаграммы с Qwt

0

Я хотел бы построить полулогарифмическую диаграмму с использованием Qwt. Я не знаю о Qwt, но я искал несколько примеров для руководства своим кодом. Проблема в том, что на данный момент я не нахожу кого-то. Не могли бы вы помочь мне с простым кодом? Я хочу использовать матрицу, где я могу получить значения оси x и y-оси и использовать их для создания графика. Спасибо!

  • 0
    Уточните пожалуйста. Вам нужен график с логарифмическим масштабом или просто матрица графика (2xN), как, например, в MathCad?
  • 0
    @Chernobyl Чернобыль Я исправляю это. Надеюсь поможет :)
Теги:
c++11
qt5
plot
qwt

1 ответ

2
Лучший ответ

Попробуй это:

QwtPlot *myPlot = new QwtPlot;
  QwtPlotCurve *curve1 = new QwtPlotCurve;
 
  QwtPointSeriesData* myData = new QwtPointSeriesData;
 
  QVector<QPointF>* samples = new QVector<QPointF>;
  samples->push_back(QPointF(1.0,1.0));
  samples->push_back(QPointF(2.0,2.0));
  samples->push_back(QPointF(3.0,3.0));
  samples->push_back(QPointF(4.0,5.0));
  myData->setSamples(*samples);
  curve1->setData(myData);
 
  curve1->attach(myPlot);

Я использовал здесь QVector, но qwtplotcurve поддерживает двойные массивы и другие вещи, но мне нравится работать с контейнерами. Вы можете выбрать лучшее для себя. QPoint содержит значения x и y.

Qwt также предлагает логарифмический масштабный движок: http://qwt.sourceforge.net/class_qwt_log_scale_engine.html

Я должен сказать, что, возможно, что-то не так с вашим Qwt, но следующий код отлично работает на моем компьютере:

#include "mainwindow.h"
#include <QApplication>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

int main(int argc, char *argv[])
{
      QApplication a(argc, argv);
      QwtPlot *myPlot = new QwtPlot;
      QwtPlotCurve *curve1 = new QwtPlotCurve;

      QwtPointSeriesData* myData = new QwtPointSeriesData;

      QVector<QPointF>* samples = new QVector<QPointF>;
      samples->push_back(QPointF(1.0,1.0));
      samples->push_back(QPointF(2.0,2.0));
      samples->push_back(QPointF(3.0,3.0));
      samples->push_back(QPointF(4.0,5.0));
      myData->setSamples(*samples);
      curve1->setData(myData);

      curve1->attach(myPlot);
      myPlot->show();
//    MainWindow w;
//    w.show();

    return a.exec();
}

Изображение 174551

  • 0
    Я добавил #include <qwt / qwt_plot.h> и #include <qwt / qwt_plot_curve.h>. Затем я копирую ваш код в основную функцию и неожиданно завершаю свою программу. Любая идея? У меня хорошо интегрирована IDE с Qwt.
  • 0
    @Chu Посмотрите мои изменения, пожалуйста, этот код работает очень хорошо, к сожалению, похоже, что-то не так с вашим Qt / Qwt

Ещё вопросы

Сообщество Overcoder
Наверх
Меню