我将matplotlib嵌入我的PyQt 4应用程序并使用它来显示图像。 matplotlib控件显示在QDockWidget中,我按如下方式设置其参数:
imagePlot = self.axes.imshow(myNumpyArray, interpolation = "nearest")
imagePlot.axes.set_axis_off()
imagePlot.axes.get_xaxis().set_visible(False)
imagePlot.axes.get_yaxis().set_visible(False)
self.fig.subplots_adjust(bottom = 0, top = 1, left = 0, right = 1)
这具有期望的效果,即显示图像在QDockWidget中填充尽可能多的空间,同时保持纵横比。我可以通过水平缩小它然后扩展它并且图像显示正确(在保持纵横比的同时填充尽可能多的空间)来调整Dock小部件的大小。现在,如果我添加以下行:
imagePlot.axes.set(adjustable = "datalim")
我得到了意想不到的行为。最初,图像以与以前相同的方式显示,但在收缩和水平扩展后,matplotlib似乎在数据周围引入了边框。例如,这里是最初(并且正确)显示的图像:
这是matplotlib在拖动包含停靠小部件的一侧并缩小后显示的内容,然后展开回原始大小。请注意图像周围边框的外观。
造成这种情况的原因是什么?如何预防呢?谢谢。