python – 外线Seaborn violinplot / boxplot

我正在使用Seaborn图书馆的小提琴绘图功能.有时外部线条可视化:
python  – 外线Seaborn violinplot / boxplot

有时它们不是:python  – 外线Seaborn violinplot / boxplot

这些示例基于相同的代码,运行不同的时间:

  df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
  sns.violinplot(data=df, order=list(df.columns), cut=0,inner='points', bw='silverman', split=True, color='limegreen')
  plt.show()

我该如何操纵外线的格式?

解决方法:

归功于Serenity指出这是由于matplotlib错误(见报告issue).

它可以通过使用以下函数来解决:

def patch_violinplot():
     from matplotlib.collections import PolyCollection
     ax = plt.gca()
     for art in ax.get_children():
          if isinstance(art, PolyCollection):
              art.set_edgecolor((0.3, 0.3, 0.3))

修复示例可以通过以下方式完成:

df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
sns.violinplot(data=df, order=list(df.columns), cut=0,inner='points', bw='silverman', split=True, color='limegreen')
patch_violinplot()
plt.show()
上一篇:python-如何在Seaborn的簇图树形图中指定线宽


下一篇:python – 带有回归线的Seaborn条形图