Seaborn:如何设置条形边框的线宽或颜色?

dee*_*nes 2 python plot matplotlib seaborn

我正在尝试绘制带有无边界条的条形图。默认情况下,条具有黑色细边框。在Seaborn的开发版本(0.6)中,我可以将kwargs(linewidthedgecolor)传递给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)

dee*_*nes 5

经过多次尝试都没有成功,我在这里问了这个问题,很快我自己找到了解决方案。所以这里是:在绘图之前,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)


mwa*_*kom 5

这也将起作用:

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)