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