图例使用 Seaborn Objects API 遮盖了情节

问题描述 投票:0回答:1

在我的许多带有图例的情节中,我经常遇到图例问题。图例经常掩盖部分数据。

可重现的示例:

enter image description here

import seaborn.objects as so
import numpy as np
import pandas as pd
res_df = pd.DataFrame(
 {'value': np.random.rand(20),
 'cfg__status_during_transmit': ['OK']*5 + ['ERR']*5 + ['WARN']*5 + ['OTH']*5}
)

(
    so.Plot(res_df, y='value', x='cfg__status_during_transmit', color='cfg__status_during_transmit')
    .add(so.Dots(), so.Jitter(width=0.5))
    .layout(size=(8, 4))
).show()

我尝试过延长情节。这是一种黑客行为,并不方便,特别是因为它使所有东西都变得更小。

我还尝试使用

.on()
绘制到
matplotlib
图形或轴上,但同样的问题仍然存在。有一个相关的 SO 问题表明图例属性仍在开发中。我希望得到关于如何解决这个问题的建议。

谢谢。

python seaborn legend seaborn-objects
1个回答
3
投票

根据

这篇文章
,使用seaborn.objects控制图例可能仍在进行中。但是,如果我使用
plot()
而不是
show()
,我会得到一个图例,其中图例位于图表之外:

import seaborn.objects as so
import numpy as np
import pandas as pd
res_df = pd.DataFrame(
 {'value': np.random.rand(20),
 'cfg__status_during_transmit': ['OK']*5 + ['ERR']*5 + ['WARN']*5 + ['OTH']*5}
)

(so.Plot(res_df, y='value', x='cfg__status_during_transmit', color='cfg__status_during_transmit')
 .add(so.Dots(), so.Jitter(width=0.5))
 .layout(size=(8, 4))
).plot()

输出: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.