我正在尝试绘制一系列很长的箱线图。我喜欢violinplot内绘制的微型箱形图的美感(通过seaborn.violinplot的“ inner”参数控制)。有人知道没有这种小提琴图的简单绘制方法吗?谢谢!
答案 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()
或更简单的
for a in ax.collections:
a.remove()
答案 1 :(得分:0)
我能够创建完成我想要的操作的violinplot子类。基本上,我只是复制了绘制贴图的代码,并删除了不需要的部分。这显然有点丑陋,但确实做到了。如果其他人提出了更优雅的解决方案,请发表您的答案。
您可以在以下位置找到我的解决方案: https://gist.github.com/mdbecker/c21e6a8a6ce893b61eecd880d9f18a83
哪个会产生如下结果: