Matplotlib imshow() stretch to "fit width"


Question

I've got an image, and a measure associated with each column of its pixels. I'm using pyplot to create a figure with the image on top, and a plot of the column measurements below. I'm using something like this:

import numpy as np
import matplotlib.pyplot as plt

A = np.random.rand(34*52).reshape(34,52)
means = np.average(A,axis=0)

plt.figure()

plt.subplot(2,1,1)
plt.imshow(A, interpolation='nearest' )

plt.subplot(2,1,2)
plt.plot(means)

plt.show()

How can I stretch the image's width to the match that of the plots. That way, when looking at the measurements in the plot, the souce pixels will be in a column directly above it.

1
24
10/9/2012 6:56:45 PM

Accepted Answer

Turns out that it's as simple as giving aspect='auto' to the imshow call.

plt.imshow(A, interpolation='nearest', aspect='auto')
53
10/9/2012 8:35:39 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon