Pagina 1 di 1

matplotlib disegnare poligono su grafico

Inviato: giovedì 28 maggio 2015, 19:39
da sverdrup
Ciao a tutti, come da titolo ho la necessita di disegnare un poligono (un quadrato) su di un grafico...
per quanto concerne il grafico il codice è il seguente:

Codice: Seleziona tutto

#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
import scipy.interpolate
import scipy
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show

N = 1000 #number of points for plotting/interpolation

x, y, z = np.genfromtxt(r'/home/alessandro/Scrivania/test/test2/dati/sup.txt', unpack=True)

xi = np.linspace(x.min(), x.max(), N)
yi = np.linspace(y.min(), y.max(), N)
zi = scipy.interpolate.griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic')

fig = plt.figure()
CS=plt.contourf(xi, yi, zi)
colorbar(CS)
plt.clabel(CS, inline=True,fmt='%1.1f', fontsize=12, colors='black')
plt.xlabel("Dist [Km]")
plt.ylabel("Dist [Km]")


plt.savefig('fig.png')
plt.show()
come posso fare per disegnare un quadrato grigio centrato sul mio grafico??
Grazie a tutti

Re: matplotlib disegnare poligono su grafico

Inviato: venerdì 29 maggio 2015, 16:55
da vaeVictis
Se non posti anche il contenuto del file che "importi" usando genfromtxt, non è possibile riprodurre il grafico e fare le prove, prima di risponderti.

Re: matplotlib disegnare poligono su grafico

Inviato: venerdì 29 maggio 2015, 22:55
da cortinico
Ciao,

Per aggiungere un rettangolo sopra puoi provare a fare così:

Codice: Seleziona tutto

from matplotlib.patches import Rectangle
someX, someY = 2, 3
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX, someY), 2, 4, facecolor="grey"))
Ti disegnerà una cosa del genere:
Immagine
Ovviamente io non avevo i tuoi dati per cui il grafico sotto è molto differente

Aggiungo che secondo me c'è un problema nell'intestazione, in quanto tu invochi Python (ver. 2), mentre secondo me dovresti invocare Python3. Non sono un'esperto in merito ma mi pare che parte delle funzionalità di matplotlib non siano presenti in Python2

Codice: Seleziona tutto

#!/usr/bin/env python3