Qwt设置自定义坐标轴

设置横轴自定义坐标

QList<double> ticksX[QwtScaleDiv::NTickTypes];
 double dInternalX1 = step*1.0/iXAxisSubParts;
 double dInternalX = (step*iXAxisParts-0)*1.0/iXAxisParts;
 for(int i=0;i<iXAxisParts+1;++i)
 {
     double tmpData = i*dInternalX*1.0;
     qDebug()<<"iii"<<i<<"tmpData"<<tmpData;
     ticksX[QwtScaleDiv::MajorTick].append(tmpData*1.0);
     for(int j=0;j<iXAxisSubParts-1;++j)
     {
         double data = tmpData+(j+1)*(dInternalX1);
         ticksX[QwtScaleDiv::MinorTick].append(data);
     }
 }
 QwtScaleDiv scaleDivX(
         ticksX[QwtScaleDiv::MajorTick].first(),
         ticksX[QwtScaleDiv::MajorTick].last(),
         ticksX );
 setAxisScaleDiv(QwtPlot::xBottom, scaleDivX);

设置纵轴自定义坐标

double dInternal1 = dInternal/iYAxisSubPart;
 for(int i=0;i<iYAxisPart;++i)
 {
     double tmpData = minY*1.0+i*dInternal*1.0;
     qDebug()<<"iii"<<i<<"tmpData"<<tmpData;
     ticks[QwtScaleDiv::MajorTick].append(tmpData*1.0);
     for(int j=0;j<iYAxisSubPart;++j)
     {
         double data = tmpData+(j+1)*dInternal1;
         ticks[QwtScaleDiv::MinorTick].append(data);
     }
 }
 QwtScaleDiv scaleDiv(
         ticks[QwtScaleDiv::MajorTick].first(),
         ticks[QwtScaleDiv::MajorTick].last(),
         ticks );
setAxisScaleDiv(QwtPlot::yLeft, scaleDiv);

设置表格与外框一致

plotLayout()->setAlignCanvasToScales(true);

设置Y轴显示一位小数

class VScaleDraw: public QwtScaleDraw        //自画坐标轴
{
public:
    VScaleDraw()
    {
    }
    virtual QwtText label( double v ) const  //重绘坐标轴 刻度值
    {
       return QwtText( QString::number( v/10 ) );  //默认的 大刻度的时候 才会显示
    }
};
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在项目中添加 Qwt 库,具体方法可以参考 Qwt 官方文档。 接着,在你的代码中引入 Qwt 头文件和自定义数据类型的头文件,例如: ```cpp #include <qwt_plot.h> #include <qwt_plot_curve.h> #include "mydata.h" ``` 然后,你需要创建一个 QwtPlot 对象,并设置其属性,例如: ```cpp QwtPlot *plot = new QwtPlot(this); plot->setTitle("My Data Plot"); plot->setCanvasBackground(Qt::white); ``` 接着,你需要创建一个 QwtPlotCurve 对象,并将自定义数据类型的数据添加到其中,例如: ```cpp QwtPlotCurve *curve = new QwtPlotCurve("My Data"); QVector<MyData> data; // 添加自定义数据到 data 中 curve->setSamples(data); ``` 最后,将 QwtPlotCurve 对象添加到 QwtPlot 对象中,并显示出来,例如: ```cpp curve->attach(plot); plot->show(); ``` 完整的代码示例: ```cpp #include <QMainWindow> #include <qwt_plot.h> #include <qwt_plot_curve.h> #include "mydata.h" class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { // 创建 QwtPlot 对象,设置属性 QwtPlot *plot = new QwtPlot(this); plot->setTitle("My Data Plot"); plot->setCanvasBackground(Qt::white); // 创建 QwtPlotCurve 对象,设置数据 QwtPlotCurve *curve = new QwtPlotCurve("My Data"); QVector<MyData> data; // 添加自定义数据到 data 中 curve->setSamples(data); // 将 QwtPlotCurve 对象添加到 QwtPlot 对象中,并显示出来 curve->attach(plot); plot->show(); } }; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值