有什么方法可以从海洋的小提琴图中获取迷你箱形图吗?

时间:2018-10-24 14:45:19

标签: matplotlib jupyter-notebook seaborn

我正在尝试绘制一系列很长的箱线图。我喜欢violinplot内绘制的微型箱形图的美感(通过seaborn.violinplot的“ inner”参数控制)。有人知道没有这种小提琴图的简单绘制方法吗?谢谢!

seaborn violin plots

2 个答案:

答案 0 :(得分:2)

小提琴是PolyCollection对象。您可以从轴上删除所有PolyCollection。如果轴仅包含小提琴图,并且不包含任何其他PolyCollection,则这是有道理的。

import matplotlib.pyplot as plt
import seaborn as sns

sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", data=tips)


from matplotlib.collections import PolyCollection
for a in ax.findobj(PolyCollection):
    a.remove()

ax.relim()
ax.autoscale_view()

plt.show()

enter image description here

或更简单的

for a in ax.collections:
    a.remove()

答案 1 :(得分:0)

我能够创建完成我想要的操作的violinplot子类。基本上,我只是复制了绘制贴图的代码,并删除了不需要的部分。这显然有点丑陋,但确实做到了。如果其他人提出了更优雅的解决方案,请发表您的答案。

您可以在以下位置找到我的解决方案: https://gist.github.com/mdbecker/c21e6a8a6ce893b61eecd880d9f18a83

哪个会产生如下结果:

miniboxplot