在Seaborn的分类图中使用不规则间隔的非分类轴

时间:2018-07-18 23:26:56

标签: python matplotlib python-3.6 seaborn

我正在Seaborn中创建一个小提琴图,默认情况下,它假定x轴是分类的,因此均匀地间隔数据,而不是按值缩放。我希望各个小提琴之间的间距由与每个小提琴关联的值定义,而不是仅均匀地隔开它们。我读过很多东西,暗示我可以使用matplotlib命令覆盖默认值,但是什么也无法工作。

sns.set(palette='muted', color_codes=True)
f, axes = plt.subplots(2, 2, figsize=(8,5))
sns.violinplot(x = lsdf['6MO_CUM_MBO/1000FT'], y = lsdf.RELATIVE_DEPTH,
data=lsdf, palette="Blues", ax=axes[0,0])

我认为这里的关键问题是,我不确定Seaborn的默认值在控制什么。我是否需要修改由子图创建的轴对象?还是ax = [0,0]对象?

我发现类似问题的唯一答案是“在matplotlib中完成”,但我需要seaborn中可用的图。感谢您的帮助。

seaborn categorical violin plot

1 个答案:

答案 0 :(得分:0)

好吧,我最终解决了这个问题,......我屈服了,使用了纯matplotlib,放弃了Seaborn。 matplotlib violinplot采用类似数组的positions参数,当传递数值时,它会自动缩放x轴并表现得与plt.plot或任何从输入派生出标记位置和轴范围的图完全一样数据。我仍然使用seaborn.set()来获得Seaborn的美感。有matplotlib小提琴情节定制documentation,其中有很好的示例,说明了如何编辑小提琴的细节,这使我能够自定义小提琴并模仿Seaborn小提琴情节的所有部分。