Python plotting: Come posso fare matplotlib.pyplot fermare costringendo lo stile dei miei marcatori?

StackOverflow https://stackoverflow.com/questions/544542

  •  23-08-2019
  •  | 
  •  

Domanda

Sto cercando di tracciare una serie di punti di dati (molte migliaia) in Python utilizzando matplotlib quindi ho bisogno ogni marcatore di essere molto piccolo e preciso. Come faccio ad avere il più piccolo più semplice marcatore possibile? Io uso questo comando per tracciare miei dati:

 matplotlib.pyplot( x , y ,'.',markersize=0.1,linewidth=None,markerfacecolor='black')

Allora posso vedere le cose sia con pl.show() e quindi salvarlo. Oppure utilizzare direttamente plt.savefig('filename.ps') nel codice per salvarlo. Il problema è questo: quando uso pl.show() per visualizzare il file nella GUI sembra grande con i piccoli segni neri molto piccoli, ma quando salvo dalla GUI show() a un file o utilizzare direttamente savefig e quindi visualizzare la ps ho creato sembra diverso ! Ogni indicatore ha guadagnato un po 'di alone blu intorno ad esso (come se fosse iniziato in ogni punto di collegarli con le linee blu di default, ma non ha fatto) e lo stile è tutto sbagliato. Perché cambia lo stile quando viene salvato? Come faccio a smettere di pitone da costringere lo stile dei marcatori? E sì Ho guardato alcuni pacchetti alternativi come CairoPlot , ma io vogliono continuare a utilizzare matplotlib per ora.

Aggiornamento: Si scopre che il salvataggio in PNG fa prima i colori risultano bene, ma costringe una conversione dell'immagine quando voglio salvarlo di nuovo come un .ps successiva (per l'inclusione in un PDF) e poi perdo qualità. Come faccio a preservare la natura vettore di file e ottenere la formattazione giusto?

È stato utile?

Soluzione

Per l'uscita vettorizzati bell'aspetto, non utilizzare lo stile marcatore '.'. Utilizzare ad esempio 'o' (cerchio) o 's' (quadrato) (vedi help(plot) per le opzioni) e impostare la parola chiave markersize argomento per qualcosa opportunamente piccolo, per esempio:.

plot(x, y, 'ko', markersize=2)
savefig('foo.ps')

Questo '.' (punto) produce risultati meno piacevoli potrebbero essere interpretati come un bug in matplotlib, ma poi, che cosa dovrebbe "punto" significa in un formato grafico vettoriale?

Altri suggerimenti

Hai provato la forma punto ','? Si crea " pixel " (piccoli punti, invece di forme).

Si può giocare con l'opzione markersize così, con questa forma?

Se non lo avete, si dovrebbe provare a salvare in un motore di rasterizzazione - salvarlo in un file PNG e vedere se questo risolve esso. Se avete bisogno di un grafico vettoriale, provare a salvare in PDF e la conversione con un programma di utilità esterno. Ho anche avuto problemi prima con il motore di PS che sono stati risolti salvando con l'Agg o motori PDF e convertire esternamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top