- S
fill=True
předmětem aktualizace je v .collections
- S
fill=False
předmětem aktualizace je v .lines
- Aktualizace legend je poměrně jednoduchý:
handles = p.legend_.legendHandles[::-1]
extrakty a obrátí legenda zpracovává. Jsou obrácené, aby aktualizace, protože jsou v opačném pořadí, ve kterém se děj linestyle
je aktualizován
- Všimněte si, že číslo-úroveň pozemky extrakt legenda s
._legend
s os-úrovni pozemky použití .legend_
.
- Testováno v
python 3.8.12
, matplotlib 3.4.3
, seaborn 0.11.2
kdeplot
: os-level
- Extrakt a iterovat
.collections
nebo .lines
z axes
objekt a použít .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
: obrázek-úroveň
- Podobný os-úrovni spiknutí, ale každý os musí být iterated prostřednictvím
- Legenda
handles
mohl být aktualizován v for line, ls, handle in zip(ax.collections, lss, handles)
, ale to se vztahuje na aktualizace pro každý subplot. Proto, samostatná smyčka je vytvořen, aby aktualizace legenda handles
pouze jednou.
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)