[IPython-dev] IPython's matplotlib inline magic is really magic? Actually it might resets axes bounds...

Ryan Nelson rnelsonchem at gmail.com
Fri Mar 13 22:52:27 EDT 2015


Okay. I figured out the problem. You need to pass a dictionary to the
config magic. Here is the relevant code:

%config InlineBackend.print_figure_kwargs = {'bbox_inches':None}

I created a PR with IPython (https://github.com/ipython/ipython/pull/8051)
to add this information to the %matplotlib documentation, so this doesn't
cause confusion for others.

Thanks to all the IPython and MPL devs for these great tools!


On Fri, Mar 13, 2015 at 7:07 PM, Wes Turner <wes.turner at gmail.com> wrote:

> Ryan,
>
>
> http://wrdrd.github.io/docs/consulting/data-science.html#data-visualization-tools
> On Mar 13, 2015 1:59 PM, "Ryan Nelson" <rnelsonchem at gmail.com> wrote:
>
>> I'm constructing a multi-plot figure using an IPython notebook (v3) and
>> matplotlib (v1.4.3) inline magic. I was manually setting the axes bounds,
>> and I ended up with something like the following:
>>
>> ########
>> import matplotlib.pyplot as plt
>> %matplotlib inline
>>
>> bottom = 0.12
>> top = 0.9
>> left = 0.12
>> axwidth = (1-(left*2))/3
>>
>> fig = plt.figure(figsize=(10,4))
>>
>> ax1 = fig.add_axes((left, bottom, axwidth, top))
>> ax1.set_title('Title')
>> #ax1.tick_params(labelleft=False)
>>
>> ax2 = fig.add_axes((left+axwidth, bottom, axwidth, top),
>>                    sharex=ax1, sharey=ax1)
>> ax2.tick_params(labelleft=False)
>>
>> ax3 = fig.add_axes((left+axwidth*2, bottom, axwidth, top),
>>                    sharex=ax1, sharey=ax1)
>> ax3.tick_params(labelleft=False)
>>
>> fig.savefig('junk.pdf', format='pdf')
>> fig.savefig('junk2.png')
>> #######
>>
>> Obviously, the bottom+top that I've selected is >1, so the axes should go
>> off the top of the figure. (Stupid, I know...) The axes in both the PDF and
>> PNG formatted files are clipped by the top of the figure as you would
>> expect; however, the figure that is displayed in the Notebook looks just
>> fine. In addition, if you add a title to one of the axes, the figure in
>> IPython suddenly creates more space for the text. Maybe it is rearranging
>> the axes information behind the scenes?
>>
>> I'm curious why this design decision was made. I would say this is a bug.
>> Now that I know about this behavior, I can easily fix it. But new users
>> will be baffled when their saved figure looks nothing like the displayed
>> figure in the notebook.
>>
>> Ryan
>>
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>
>>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20150313/a0c1092a/attachment.html>


More information about the IPython-dev mailing list