2011-12-01 3 views
6

Ho un grafico a dispersione che utilizza sei simboli diversi per tracciare i punti. Ad esempio, il codice di seguito trame un punto con il simbolo del triangolo rivolto verso il basso:È necessario utilizzare marker di dispersione matplotlib all'esterno del grafico, in etichette per un grafico a barre

my_axis.scatter([x], [y], marker='v') 

Ogni simbolo rappresenta una diversa classe di oggetti. Ho bisogno di fare riferimento ai simboli usati nel grafico a dispersione in un grafico diverso, un grafico a barre che spiega le proporzioni di ogni classe in ciascun cluster nel grafico a dispersione.

Come è possibile che le etichette per i grafici a barre utilizzino i simboli utilizzati per i contrassegni del grafico a dispersione? Come puoi vedere nell'immagine qui sotto, le etichette sotto ogni barra dovrebbero corrispondere ai marcatori nel grafico, ma non lo fanno perché non so come richiamare i marcatori al di fuori del contesto del grafico a dispersione. Invece, mostrano semplicemente la lettera di codice per il marcatore (ad esempio v invece di un triangolo reale).

Ignorare il fatto che la linea di percentuali incomprensibili si sovrappone, questo è un problema separato che risolverò.

Sarei perfetto se aggiungo manualmente i simboli alla legenda del grafico a barre se fossero simboli UTF-8 che potrei trovare da qualche parte, ma non sono stato in grado di trovare le specifiche esatte per quale carattere ciascun indicatore potrebbe essere.

Sto anche cercando di utilizzare .text() con caratteri UTF-8 letterali, anziché .scatter(), ma molti simboli non verranno renderizzati (visualizzati come quadrati) anche quando scelgo un font Unicode con fontproperties, quindi sono bloccato su questo approccio.

Grazie per l'aiuto!

scatter plot and bar graphs

risposta

3

Utilizzare Latex è una soluzione piuttosto semplice. Per esempio:

from matplotlib import rc 
rc('text', usetex=True) 
plt.xticks(ind+width/2., ("$\lozenge$", "$\square$", "$\plus$", "o", "$\bigtriangledown$")) 

E se avete bisogno di aiuto per capire i nomi per i simboli, this è un piccolo grande sito web che ti permette di disegnare il simbolo che volete e vi sarà uscita i nomi lattice.

+0

Questo è davvero uno strumento Unicode fantastico, lo adoro. Dai un'occhiata a tutti! Ho intenzione di andare con il testo Unicode per i marcatori, non ho finito per usare LaTeX, solo simboli letterali. – mrjf

+0

Contento di aver potuto aiutare. Mi sento come se fossi un promoter (prometto di non esserlo) ma Detexify ha anche delle app telefoniche, che in realtà sono piuttosto divertenti. – cosmosis