【问题标题】:Separating violinplots in seaborn with a line用一条线分隔seaborn中的小提琴图
【发布时间】:2020-07-03 17:55:17
【问题描述】:
我正在尝试使用 Seaborn 绘制多色调分布,但我发现这些图很难追溯到它们所属的刻度。我试图添加一个网格,但网格只显示在分布的维度上,因此将分布本身分开,而不是彼此不同的分布。是否可以让 Seaborn 在不同的小提琴情节组/色调之间添加网格线?为了说明,请从docs 中获取其中一张图。我已经在这个图中添加了我想看到的内容(出于说明目的,我将这些分隔符的宽度设置得很重,在解决方案中我希望它们与网格线一样粗):
【问题讨论】:
标签:
python
seaborn
violin-plot
【解决方案1】:
您可以使用 matplotlib 的 axvline 在位置 0.5、1.5、...处绘制垂直线
import numpy as np
import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="smoker",
data=tips, palette="muted")
for i in range(len(np.unique(tips['day'])) - 1):
ax.axvline(i + 0.5, color='grey', lw=1)
plt.show()
或者,您可以在这些位置设置次要刻度,并为 x 轴打开次要网格线。