如何移除Python Matplotlib+Seaborn生成的条形图中的线条?
移除水平条形图中的多余线条
针对你遇到的多余线条问题,主要可以从边框、刻度线和网格线三个方面处理,具体修改如下:
1. 移除所有边框(Spines)
当前代码仅移除了左侧和底部的边框,顶部和右侧的边框仍会显示。修改sns.despine的参数,一次性移除所有方向的边框:
sns.despine(ax=ax, left=True, bottom=True, top=True, right=True)
2. 彻底清除Y轴刻度线
你当前只隐藏了Y轴的标签,但刻度线可能还残留。直接关闭Y轴刻度的可见性,同时隐藏标签:
ax.set_yticks([]) # 替代原来的ax.set_yticklabels([])
3. 关闭网格线(如果有多余网格)
如果图表中存在默认的网格线干扰,添加一行代码关闭所有网格:
ax.grid(False)
修改后的完整代码
fig = figure.Figure(figsize=figsize) ax = fig.add_subplot() g = sns.barplot(y=y, x=x, data=data, ax=ax, ci=False, orient='h', order=orderlist) g.set(xlabel=None, ylabel=None, xticks=[]) # 彻底移除Y轴刻度和标签 ax.set_yticks([]) for x in g.containers: currency_labels = [format_decimal(value) for value in x.datavalues] ax.bar_label(x, rotation=0, padding=5, fmt='%.0f', fontsize=9, labels=currency_labels) # 移除所有边框 sns.despine(ax=ax, left=True, bottom=True, top=True, right=True) # 关闭网格(按需添加) ax.grid(False) fig.tight_layout() fig.savefig(saveloc, dpi=2000)
内容的提问来源于stack exchange,提问作者LucasBorges-Santos
相关产品推荐
相关产品推荐

