2016-02-04 11 views
8

Qual è il modo più conveniente per ingrandire e impostare il valore alpha dei marcatori (torna a 1.0) nella casella della legenda? Sono anche contento delle grandi scatole colorate.Cambia dimensione/alfa dei marcatori nella casella Legenda di matplotlib

import matplotlib.pyplot as plt 
import numpy as np 

n = 100000 
s1 = np.random.normal(0, 0.05, n) 
s2 = np.random.normal(0, 0.08, n) 
ys = np.linspace(0, 1, n) 

plt.plot(s1, ys, ',', label='data1', alpha=0.1) 
plt.plot(s2, ys, ',', label='data2', alpha=0.1) 
plt.legend(bbox_to_anchor=(1.005, 1), loc=2, borderaxespad=0.) 

enter image description here

+0

Eventuali duplicati di [Set leggenda simbolo opacità con matplotlib?] (Http://stackoverflow.com/questions/12848808/set-legend-symbol-opacity-with-matplotlib) – CaptainKinematics

risposta

4

Se il nome del tuo legend, è possibile iterare le linee in esso contenute. Ad esempio:

leg=plt.legend(bbox_to_anchor=(1.005, 1), loc=2, borderaxespad=0.) 

for l in leg.get_lines(): 
    l.set_alpha(1) 
    l.set_marker('.') 

nota, è inoltre necessario impostare nuovamente il contrassegno. Suggerisco impostandolo a . piuttosto che , qui, per renderlo un po 'più visibile enter image description here

+0

Questo è fantastico, ma in realtà non aggiorna il marker. Sembra disegnare un nuovo pennarello sopra quello vecchio. Non c'è modo di accedere effettivamente al marcatore stesso? –

3

Per le dimensioni è possibile includere la parola chiave markerscale=## nella chiamata a leggenda e che renderà i marcatori più grandi (o più piccolo).

import matplotlib.pyplot as plt 
import numpy as np 
fig = plt.figure(1) 
fig.clf() 

x1,y1 = 4.*randn(10000), randn(10000) 
x2,y2 = randn(10000), 4.*randn(10000) 
ax = [fig.add_subplot(121+c) for c in range(2)] 


ax[0].plot(x1, y1, 'bx',ms=.1,label='blue x') 
ax[0].plot(x2, y2, 'r^',ms=.1,label='red ^') 
ax[0].legend(loc='best') 

ax[1].plot(x1, y1, 'bx',ms=.1,label='blue x') 
ax[1].plot(x2, y2, 'r^',ms=.1,label='red ^') 
ax[1].legend(loc='best', markerscale=40) 

The output from the code

Problemi correlati