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.

Asked By: ajwood

||

Answers:

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

plt.imshow(A, interpolation='nearest', aspect='auto')
Answered By: ajwood
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.