[SciPy-User] matplotlib woes

Tony S Yu tsyu80@gmail....
Tue Jun 8 13:48:28 CDT 2010


On May 28, 2010, at 9:29 AM, Thøger Emil Juul Thorsen wrote:

> Hello SciPy list; 
> 
> For my thesis I have an image which is also a spectrum of an object. I
> want to plot the image using imshow along with a data plot of the
> intensity, as can be seen on http://yfrog.com/0tforscipylistp .
> 
> My questions are 2:
> 
> 1) imshow() sets the ticks on the two upper subplots as pixels
> coordinates. What I want to show as tick labels on my x-axis is the
> wavelength coordinates of the lower plot on the upper images (since
> there is a straightforward pixel-to-wavelength conversion). I have
> googled everywhere but can't seem to find a solution, is it possible?
> 
> 2) Is there any possible way to make the subplots layout look a bit
> nicer? Ideally to squeeze the two upper plots closer together and
> stretch the lower plot vertically, or at least to make the two upper
> subplots take up an equal amount of space?
> 
> Best regards; 
> 
> Emil, python-newb and (former) IDL-user, 
> Master student of Astrophysics at the University of Copenhagen, 
> Niels Bohr Instutute.


Hey Emil,

1) You should try the `extent` argument in `imshow`. From the docs for imshow:

*extent*: [ None | scalars (left, right, bottom, top) ]
        Data limits for the axes.  The default assigns zero-based row,
        column indices to the *x*, *y* centers of the pixels.

For example:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(0, 2*np.pi)
>>> Y = np.sin([x, x])
>>> plt.imshow(Y, extent=[0, 2*np.pi, 0, 1])

2) If you're plotting interactively, you can configure the subplots using the command on the toolbar (3rd from right). If you want to add the adjustment to your script use `subplots_adjust`. For example,

>>> plt.subplots_adjust(hspace=0.1)

where "hspace" is the spacing (height) between subplots. Of course, change the value of hspace to suit your needs. I'm actually surprised there's so much spacing between your subplots, so I suspect you may be doing something strange in your plot script. If subplots_adjust doesn't work it may be helpful to see your plot script, BUT....

Please move this discussion to the matplotlib-users list (https://lists.sourceforge.net/lists/listinfo/matplotlib-users), if you have further questions or want to follow-up on this question. It's more appropriate for matplotlib-specific questions.

Best,
-Tony




More information about the SciPy-User mailing list