- Cu
fill=True
obiectul de actualizare este în .collections
- Cu
fill=False
obiectul de actualizare este în .lines
- Actualizarea legenda este destul de simplu:
handles = p.legend_.legendHandles[::-1]
extracte și inversează legenda mânere. Acestea sunt inversate pentru a actualiza, deoarece acestea sunt, în ordine inversă, în care intriga linestyle
este actualizat
- Rețineți că figura nivel de parcele extract de legenda cu
._legend
, cu axele la nivel de parcele de utilizare .legend_
.
- Testat în
python 3.8.12
, matplotlib 3.4.3
, seaborn 0.11.2
kdeplot
: axe-nivel
- Extrage și de a repeta prin
.collections
sau .lines
din axes
obiect și de a folosi .set_linestyle
fill=True
fig = plt.figure(figsize=(6, 5))
p = sns.kdeplot(data=im, x='value', hue='variable', fill=True)
lss = [':', '--', '-.', '-']
handles = p.legend_.legendHandles[::-1]
for line, ls, handle in zip(p.collections, lss, handles):
line.set_linestyle(ls)
handle.set_ls(ls)
fill=False
fig = plt.figure(figsize=(6, 5))
p = sns.kdeplot(data=im, x='value', hue='variable')
lss = [':', '--', '-.', '-']
handles = p.legend_.legendHandles[::-1]
for line, ls, handle in zip(p.lines, lss, handles):
line.set_linestyle(ls)
handle.set_ls(ls)
displot
: figura nivel
- Similar cu axele la nivel de parcelă, dar fiecare axe trebuie să fie reperabile prin
- Legenda
handles
ar putea fi actualizate în for line, ls, handle in zip(ax.collections, lss, handles)
, dar care se aplică actualizarea pentru fiecare subplot. Prin urmare, o buclă separată este creat pentru a actualiza legenda handles
doar o singură dată.
fill=True
g = sns.displot(kind='kde', data=im, col='variable', x='value', hue='species', fill=True, common_norm=False, facet_kws={'sharey': False})
axes = g.axes.flat
lss = [':', '--', '-.']
for ax in axes:
for line, ls in zip(ax.collections, lss):
line.set_linestyle(ls)
handles = g._legend.legendHandles[::-1]
for handle, ls in zip(handles, lss):
handle.set_ls(ls)
fill=False
g = sns.displot(kind='kde', data=im, col='variable', x='value', hue='species', common_norm=False, facet_kws={'sharey': False})
axes = g.axes.flat
lss = [':', '--', '-.']
for ax in axes:
for line, ls in zip(ax.lines, lss):
line.set_linestyle(ls)
handles = g._legend.legendHandles[::-1]
for handle, ls in zip(handles, lss):
handle.set_ls(ls)