matplotlib disegnare poligono su grafico

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
sverdrup
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 607
Iscrizione: giovedì 15 giugno 2006, 12:51

matplotlib disegnare poligono su grafico

Messaggio 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
"Not everything that counts can be counted, and not everything that can be counted counts."
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: matplotlib disegnare poligono su grafico

Messaggio 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.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
cortinico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 477
Iscrizione: venerdì 15 maggio 2015, 16:49
Desktop: Unity
Distribuzione: Ubuntu 15.04 amd64
Sesso: Maschile
Località: Pisa
Contatti:

Re: matplotlib disegnare poligono su grafico

Messaggio 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
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti