用Qwt绘制半月图

时间:2014-11-14 00:32:46

标签: c++ c++11 plot qt5 qwt

我想使用Qwt绘制半月图。我不了解Qwt,但我正在寻找一些示例来指导我的代码。问题是目前我找不到人。你能帮我一个简单的代码吗?我想使用矩阵,我可以获得x轴和y轴值,并使用它们来创建绘图。谢谢!

1 个答案:

答案 0 :(得分: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();
}

enter image description here