【发布时间】:2022-01-13 07:49:31
【问题描述】:
我有一个包含不同领域分数的数据集。所以这可以被认为是一个带有domain 和score 列的DataFrame。我想为每个域绘制箱线图。这很容易。使用 seaborn,它看起来像这样:
import seaborn as sns
data = {"domain": ["econ", "econ", "public_affairs", "culture", "communication", "public_affairs", "communication", "culture", "public_affairs", "econ", "culture", "econ", "communication"],
"score": [0.25, 0.3, 0.5684, 0.198, 0.15, 0.486, 0.78, 0.84, 0.48, 0.81, 0.1, 0.23, 0.5]}
ax = sns.boxplot(x="score", y="domain", data=data)
结果如下图:
但是,我希望在 y 轴上添加另一个刻度,其中为 所有 分数绘制箱形图,无论其域如何,刻度标签为“全部”。如果这个新的“全部”箱线图可以用一条水平线与其他数据分开,以明确“全部”本身不是一个域,那将是完美的。
我在照片编辑器程序中混合了一些东西来说明我在寻找什么,所以它会是这样的。特别重要的是所有地块之间的共享轴。
我最好的尝试是以下,它看起来不像我在上面的示例中想要的。
import seaborn as sns
data = {"domain": ["econ", "econ", "public_affairs", "culture", "communication", "public_affairs", "communication", "culture", "public_affairs", "econ", "culture", "econ", "communication"],
"score": [0.25, 0.3, 0.5684, 0.198, 0.15, 0.486, 0.78, 0.84, 0.48, 0.81, 0.1, 0.23, 0.5]}
fig, axes = plt.subplots(2, 1, sharex=True)
sns.boxplot(ax=axes[0], x="score", y="domain", data=data)
all_box = sns.boxplot(ax=axes[1], data=data["score"], orient="h")
【问题讨论】:
标签: matplotlib plot seaborn data-visualization boxplot