dee*_*nes 2 python plot matplotlib seaborn
我正在尝试绘制带有无边界条的条形图。默认情况下,条具有黑色细边框。在Seaborn的开发版本(0.6)中,我可以将kwargs(linewidth
,edgecolor
)传递给pyplot.bar()
via seaborn.barplot()
,但是在当前版本(0.5.1)中,此功能似乎尚不可用。看着返回的AxesSubplot
对象,尽管有很多方法,我找不到将线宽设置为零或将颜色设置为完全透明的方法,所以我仍然希望有一种方法可以实现这一点。
import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots()
ax = sns.barplot(data = data, x = 'var1', color = '#007b7f')
fig.tight_layout()
fig.savefig('fig.pdf')
Run Code Online (Sandbox Code Playgroud)
经过多次尝试都没有成功,我在这里问了这个问题,很快我自己找到了解决方案。所以这里是:在绘图之前,patch.linewidth
参数可以设置为seaborn.set_context()
:
import seaborn as sns
sns.set_context(rc = {'patch.linewidth': 0.0})
ax = sns.barplot(...)
Run Code Online (Sandbox Code Playgroud)
这也将起作用:
fig, ax = plt.subplots()
ax = sns.barplot(data = data, x = 'var1', color = '#007b7f')
plt.setp(ax.patches, linewidth=0)
Run Code Online (Sandbox Code Playgroud)