You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置matplotlib水平条形图的条形间距及标签对齐适配

优化后实现代码
import matplotlib.pyplot as plt
from collections import Counter

# 此处countersum为你已生成的Counter对象
# 直接取前100高频项,无需后续切片
toplist = countersum.most_common(100)
# 直接解包得到键、值列表,替代原冗余循环
topkeylist, topvallist = zip(*toplist)
keylist = [str(key) for key in topkeylist]

# 核心调整:height参数越接近1,条形间距越小,设为0.95可实现相邻条形紧挨
plt.barh(keylist, topvallist, height=0.95, align='center')

# 调整y轴配置:保证标签与条形中心对齐,fontsize根据展示条数适配,100条建议设为7~8
plt.yticks(range(len(keylist)), keylist, va='center', fontsize=7)

plt.xlabel('数据集内出现频次')
plt.ylabel('N-gram样本')
# 自动调整画布边距,避免长标签被截断
plt.tight_layout()
plt.show()
关键修改说明
  • 条形间距调整:通过plt.barh的height参数控制,该参数对应单根水平条形的高度,数值越接近1,条形越粗、相邻条形的间隙越小,设置为0.95即可实现几乎无空隙的紧挨效果
  • y轴文本对齐:新增plt.yticks的va='center'参数,保证每个y轴标签和对应条形的中心位置完全对齐
  • 字体大小适配:可根据实际展示的条形数量灵活调整fontsize参数,如展示100条的场景设置为7~8即可保证文本不重叠,可读性最优
  • 代码冗余优化:使用解包和列表推导式替代原多轮循环,逻辑更简洁,执行效率更高

内容的提问来源于stack exchange,提问作者Athmos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:15:03