我将matplotlib嵌入到我的PyQt4 GUI中,并且我有一点时间。我可以显示图像,但它会在我想删除的内容周围添加一个非常厚的填充。这就是我正在做的事情:
from PyQt4.QtCore import *
from PyQt.QtGui import *
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4Agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.image as mpImage
import matplotlib.pyplot as plt
class MatPlotLibImage(FigureCanvas):
def __init__(self):
super(MatPlotLibImage, self).__init__(self.fig)
self.axes = self.fig.add_subplot(111)
def LoadImage():
image = mpImage.imread("myImage.png")
imgplot = self.axes.imshow(image, interpolation="nearest")
# plt.axis("Off") -> Doesn't do anything as far as I can tell
imgplot.axes.set_axis_off() # Gets rid of frame
imgplot.axes.get_xaxis().set_visible(False) # Turn off x-axis
imgplot.axes.get_yaxis().set_visible(False) # Turn off y-axis
如果我将此小部件添加到QDockWidget,我会得到以下结果:
正如您所看到的,它会在内容周围呈现大的白色填充。我似乎无法删除这一点,我在网上出现的所有内容都集中在保存图像时删除填充,而不是显示。有谁知道如何在显示时删除此填充?提前谢谢。
答案 0 :(得分:3)
您可以使用subplots_adjust
来消除边距。即。
self.fig.subplots_adjust(bottom=0, top=1, left=0, right=1)
这将告诉图形不要在其子轴周围使用任何边距。然后,您可能仍会在一个方向上获得一些空白区域,这是由于画布宽高比与图像方面不同。但是,我认为您不希望更改图像方面,因此需要保留剩余边距。