|
From: Joe K. <jof...@gm...> - 2013-10-17 15:46:00
|
<snip>
>
> Unfortunately, figaspect is only an approximate solution, as it simply
> uses the aspect ration of the image for the whole figure (with axes and
> labels).
>
> I wonder how difficult it would be to teach matplotlib to tightly fit
> the axes around an image, and, ideally, output the figure cropped.
>
So, you're wanting the image to be displayed pixel-to-pixel, but still have
(tight) room for the axes, etc?
If so, you can use the "bbox_inches" kwarg to crop "out" and capture the
extent of the labels, etc, and just set the figure size to exactly the size
of the image.
For example:
import numpy as np
import matplotlib.pyplot as plt
dpi = 80
data = np.random.random((100, 100))
height, width = np.array(data.shape, dtype=float) / dpi
fig, ax = plt.subplots(figsize=(width, height), dpi=dpi)
ax.imshow(data, interpolation='none')
fig.savefig('test.png', bbox_inches='tight')
If show the figure (i.e. "plt.show()"), the ticklabels, etc will be outside
the figure and not shown, but they will be properly saved, regardless.
Hope that helps,
-Joe
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
> from
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
|