Seaborn:如何设置条形边框的线宽或颜色?
Seaborn: how to set bar borders' line width or color?
我正在尝试绘制一个条形图,条形图没有边框。默认情况下,条形图具有黑色细边框。在 Seaborn 的开发版本 (0.6) 中,我可以通过 seaborn.barplot()
将 kwargs (linewidth
, edgecolor
) 传递给 pyplot.bar()
,但在当前版本 (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')
经过多次尝试没有成功,我在这里提出问题,很快我自己找到了解决方案。所以这里是:在绘图之前,可以使用 seaborn.set_context()
:
设置 patch.linewidth
参数
import seaborn as sns
sns.set_context(rc = {'patch.linewidth': 0.0})
ax = sns.barplot(...)
这也行得通:
fig, ax = plt.subplots()
ax = sns.barplot(data = data, x = 'var1', color = '#007b7f')
plt.setp(ax.patches, linewidth=0)
我正在尝试绘制一个条形图,条形图没有边框。默认情况下,条形图具有黑色细边框。在 Seaborn 的开发版本 (0.6) 中,我可以通过 seaborn.barplot()
将 kwargs (linewidth
, edgecolor
) 传递给 pyplot.bar()
,但在当前版本 (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')
经过多次尝试没有成功,我在这里提出问题,很快我自己找到了解决方案。所以这里是:在绘图之前,可以使用 seaborn.set_context()
:
patch.linewidth
参数
import seaborn as sns
sns.set_context(rc = {'patch.linewidth': 0.0})
ax = sns.barplot(...)
这也行得通:
fig, ax = plt.subplots()
ax = sns.barplot(data = data, x = 'var1', color = '#007b7f')
plt.setp(ax.patches, linewidth=0)