Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't remove matplotlib's padding around imshow() figure

I'm embedding matplotlib into my PyQt4 GUI and I'm having a heck of a time. I can get the image to display but it adds a very thick padding around the content that I'd like to remove. Here's what I'm doing:

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

If I add this widget to a QDockWidget I get the following result:

enter image description here

As you can see it renders with a large white padding around the content. I cannot seem to remove this and everything I'm turning up online is focused on removing the padding when saving the image, not displaying. Does anyone know how to remove this padding at display time? Thanks in advance.

like image 518
LKeene Avatar asked Jun 21 '17 00:06

LKeene


1 Answers

You may use subplots_adjust to get rid of the margins. I.e.

self.fig.subplots_adjust(bottom=0, top=1, left=0, right=1)

This will tell the figure not to use any margins around its child axes. You may then still get some white space to one direction, which is due to the canvas aspect ratio not being the same as the image aspect. However, I think that you don't want to change the image aspect and so this remaining margin would acutally be desired.

like image 116
ImportanceOfBeingErnest Avatar answered Sep 28 '22 04:09

ImportanceOfBeingErnest