小提琴作图的形状有助于可视化分组数据的数据分布。每组的大小也可以被想象为“小提琴”的区域。
但是,当数据是异构的时,特定组的width太小,无法显示任何意义信息(图1中的Fri组)。在海运小提琴图中有width选项,用于扩大绘图的大小。
然而,一旦小尺寸组扩大到适当的规模,大的组就会变得“太大”(图2中的Sat组)并相互重叠。
因此,我的问题是如何在海运.中为小提琴的情节分配不同的开口距离。
演示
代码,用于生成图1:
import seaborn as sns
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="sex",
data=tips, palette="Set2", split=True,
scale="count", inner="stick",
scale_hue=False, bw=.2)图1

代码,用于生成图2:
import seaborn as sns
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="sex",
data=tips, palette="Set2", split=True,
scale="count", inner="stick", width=2.5
scale_hue=False, bw=.2) 图2

你的解决方案是什么?
tips["day_n"] = tips["day"].map(dict(zip(tips["day"].unique(), [1, 2, 4, 6])))但似乎海运不支持数字数据,组之间的距离保持不变或混乱,当切换x,y轴。
代码,用于生成图3:
ax = sns.violinplot(y="day_n", x="total_bill", hue="sex",
data=tips, palette="Set2", split=True,
scale="count", inner="stick", width=2.5,
scale_hue=False, bw=.2)图3

positions选项。但这也不是海运的工作。发布于 2018-10-09 21:07:39
使用order参数可以实现x轴上的[1, 2, 4, 6]位置:
import seaborn as sns, matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="sex",
data=tips, palette="Set2", split=True,
scale="count", inner="stick",
scale_hue=False, bw=.2, width=2.5,
order=('Thur', 'Fri', '', 'Sat', '', 'Sun'))
# get rid of ticks for empty columns (levels)
ax.set_xticks([0,1,3,5])
ax.set_xticklabels(['Thur', 'Fri', 'Sat', 'Sun'])
plt.show()这里的结果是:

https://stackoverflow.com/questions/52720616
复制相似问题