2 votes

Comment tracer pcolor sur une image matplotlib ?

Je voudrais tracer quelques données fictives pour pcolor sur une image png avec matplotlib.

Dans ce code, je dessine simplement une flèche (je suis novice en matière de matplotlib) :

import matplotlib.pyplot as plt
import pylab
im = plt.imread('pitch.png')
implot = plt.imshow(im)

plt.annotate("",
        xy=(458, 412.2), xycoords='data',
        xytext=(452.8, 363.53), textcoords='data',
        arrowprops=dict(arrowstyle="<-",
                        connectionstyle="arc3"), 
        )

pylab.savefig('foo.png')

Je n'arrive pas à tracer avec pcolor sur mon png. Quelqu'un peut-il m'aider ?

1voto

tom Points 25939

Si vous créez un Axes (par exemple avec fig,ax=plt.subplots() ), vous pouvez facilement tracer le pcolor là-dessus. Assurez-vous de rendre le pcolor transparent, pour que vous puissiez voir le imshow image en dessous.

Voici un exemple, en utilisant l'image de aquí

import matplotlib.pyplot as plt
import numpy as np

im = plt.imread('stinkbug.png')

# Create Figure and Axes objects
fig,ax = plt.subplots(1)

# display the image on the Axes
implot = ax.imshow(im)

# Some dummy data to use in pcolor
x = np.arange(im.shape[1])
y = np.arange(im.shape[0])
X,Y = np.meshgrid(x,y)
data = X+Y

# plot the pcolor on the Axes. Use alpha to set the transparency
p=ax.pcolor(X,Y,data,alpha=0.5,cmap='viridis')

# Note I changed your coordinates so the arrow would fit on this image
ax.annotate("",
        xy=(458, 150), xycoords='data',
        xytext=(452.8, 250), textcoords='data',
        arrowprops=dict(arrowstyle="<-",
                        connectionstyle="arc3"), 
        )

# Add a colorbar for the pcolor field
fig.colorbar(p,ax=ax)

plt.savefig('foo.png')

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X