我正在尝试使用没有任何标题或轴标签的QWT绘制图表。不绘制标题似乎很容易,你所要做的就是不将它传递给标题,或者如果已经存在标题,只需给它一个空字符串(如下所示):
ui->plot->setAxisTitle(QwtPlot::xBottom, "");
ui->plot->setAxisTitle(QwtPlot::yLeft, "");
但是默认情况下会绘制实际标签(在axisScale属性内)(在x和y中都从0到1000)。然而,即使我可以改变它的外观,我也无法完全删除它。
那么有没有办法在没有任何轴标签或标题的情况下绘制qwt图?
答案 0 :(得分:3)
如果你不想要比例尺或标签,这将有效:
ui->plot->enableAxis(QwtPlot::xBottom, false);
ui->plot->enableAxis(QwtPlot::yLeft, false);
如果要显示没有标签的比例,您可以实现自己的QwtScaleDraw
对象,该对象为所有标签返回空的QwtText
对象:
class MyScaleDraw : public QwtScaleDraw
{
public:
MyScaleDraw() : QwtScaleDraw() { }
virtual ~MyScaleDraw() { }
virtual QwtText label(double) const
{
return QwtText();
}
};
//...
ui->plot->setAxisScaleDraw(Qwt::xBottom, new MyScaleDraw);
ui->plot->setAxisScaleDraw(Qwt::yLeft, new MyScaleDraw);
可能有更好的方法,但这是我能想到的。
答案 1 :(得分:1)
我做了以下事情: ui-> plot-> enableAxis(QwtPlot :: yLeft,false);
但发生的事情是我的轴消失了,但我的情节也被压成了一个薄的水平条。
是什么导致这种情况?
答案 2 :(得分:0)
刚刚找到了一个很好的方法:
ui->plot->axisScaleDraw(QwtPlot::xBottom)->enableComponent(QwtAbstractScaleDraw::ScaleComponent::Labels, false);
也适用于ScaleComponents Ticks和Backbone。