matplotlib绘制柱状图仅显示柱形 不显示坐标轴标签、刻度与标题
问题原因
标签、刻度、标题不显示的核心原因是坐标轴位置参数设置错误:
你代码里的ax = fig.add_axes([0,0,1,1])把坐标轴区域设置成了完全占满整个画布。add_axes接收的四个参数依次为「坐标轴区域距画布左侧距离、距画布底部距离、区域宽度、区域高度」,取值为0-1的比例值。当你把左右、上下边距都设为0时,坐标轴外侧的刻度、轴标签、标题全部被裁到了画布可视范围之外,最终只能看到中间的柱状图形。
另外你代码里y轴标签的Responsi是拼写错误,正确拼写为Response。
修复方案
两种常用修复方式,选其一即可:
- 手动调整
add_axes的边距参数,给外围标注留出足够显示空间,比如将参数改为[0.15, 0.15, 0.75, 0.75] - 直接使用
plt.subplots()创建画布与坐标轴,matplotlib会自动预留合适的边距,不需要手动计算位置,更适合日常使用
修复后的完整可运行代码:
import matplotlib.pyplot as plt # 自动适配边距的写法,推荐使用 fig, ax = plt.subplots() # 如果要坚持用add_axes写法,替换成下面两行即可 # fig = plt.figure() # ax = fig.add_axes([0.15, 0.15, 0.75, 0.75]) packets = ['1.', '2', '3', '4', '5'] testTime = [2.3, 1.7, 3.5, 2.9, 1.2] plt.bar(packets, testTime) plt.ylabel('Response time (Seconds.milliseconds)') plt.xlabel('Packets') plt.title("Response Time") plt.show()
运行后就能正常看到x/y轴刻度、轴标签和顶部标题了。
内容的提问来源于stack exchange,提问作者Muhammad Junaid Khalid
相关产品推荐
相关产品推荐

