I've been trying everything I can to get pyplot to display an image 5 times. I keep getting this error...
Here is my code
import matplotlib.pyplot as plt
import os.path
import numpy as np
'''Read the image data'''
# Get the directory of this python script
directory = os.path.dirname(os.path.abspath(__file__))
# Build an absolute filename from directory + filename
filename = os.path.join(directory, 'cat.gif')
# Read the image data into an array
img = plt.imread(filename)
'''Show the image data'''
# Create figure with 1 subplot
fig, ax = plt.subplots(1, 5)
# Show the image data in a subplot
for i in ax:
ax.imshow(img, interpolation='none')
# Show the figure on the screen
fig.show()
I'm sure it has something to do with the 2D array, but I really cant figure it out.
Ive tried
for i in ax:
ax[i].imshow(img, interpolation='none')
# Show the figure on the screen
fig.show()
But I just get:
IndexError: only integers, slices (
:
), ellipsis (...
), numpy.newaxis (None
) and integer or boolean arrays are valid indices
just add this command before "ax.flatten()" before your code
ax = ax.flatten()
for a in ax:
a.imshow(img, interpolation='none')
plt.show()
This:
for i in ax:
ax[i].imshow(img, interpolation='none')
doesn't make sense because I
isn't the index. It's one of the axis objects.
And your first case is wrong because even though you loop over the items, you call the function on ax
, not the individual axes.
Do this:
for a in ax:
a.imshow(img, interpolation='none')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With