首页 > 解决方案 > Matplotlib 透明面设置

问题描述

我的目标是制作一个 matplotlib 条形图,它在一个轴上只有标签名称,然后是条形图,然后是顶部的这些条形图的值,如下所示。但是,我希望能够在线嵌入这样的图像,并希望背景是透明的。但是当我像这样transparent=True保存图时,背景中有这些线条非常分散注意力,并且我的 y 标签的名称也变得透明,这是我不想要的。

我只需要帮助获得对透明度参数的更多控制。

fig, ax = plt.subplots(figsize=(8, 12), frameon=False)

# x dummy data
x = prez_counts['presidents']

# y dummy data
y = prez_counts['occurence']

# make facecolor transparent
ax.set_facecolor('w')
ax.patch.set_alpha(0)

# plot bar plot
ax.barh(x,y,color=sns.color_palette("gnuplot_r", len(x)), alpha=0.7)

# remove xaxis ticks
ax.get_xaxis().set_visible(False)

# add x values of y to end of bars
for i, v in enumerate(y):
    ax.text(v + .5, i - .20, str(v), fontsize=(8))

sns.despine(left=True, bottom=True, right=True, top=True)
plt.tight_layout()

plt.savefig('../3_output/test.png', transparent=True)

我希望输出是相同的图,只是背景中没有线条,也没有清晰/半透明的 y 标签。

标签: pythonmatplotlibvisualization

解决方案


推荐阅读