柱状图中标题、X轴/Y轴标签不显示问题求助
问题解决:柱状图标题、轴标签不显示及X轴刻度错误
问题根源
- 标题/轴标签被遮挡:你用
ax.add_axes([0,0,1,1])创建的坐标轴完全占满画布,没有预留边距,导致标题、Y轴标签被挤出可视区域。 - X轴刻度设置错误:
set_xticks的参数用法不符合matplotlib规范,且刻度位置未对应到每组柱子的中心,导致数据集名称(G1-G4)无法正确匹配分组。
修正后的代码
import numpy as np import matplotlib.pyplot as plt test = np.arange(4)+1 data = [test, test, test, test] err = np.linspace(0.1,0.2,4) X = np.arange(4) # 改用subplots创建坐标轴,自动预留边距 fig, ax = plt.subplots() # 绘制四组柱子,位置依次偏移 ax.bar(X + 0, data[0], color='lightblue', width=0.2, yerr=err, ecolor="darkgray") ax.bar(X + 0.2, data[1], color='limegreen', width=0.2, yerr=err, ecolor="darkgray") ax.bar(X + 0.4, data[2], color='r', width=0.2, yerr=err, ecolor="darkgray") ax.bar(X + 0.6, data[3], color='y', width=0.2, yerr=err, ecolor="darkgray") ax.legend(labels=['shrink', 'uniform','insert','replace']) ax.set_ylabel('Mutation rates') ax.set_title('Mutation rates variation by dataset') # 将X轴刻度放在每组柱子的中心位置,再设置对应标签 ax.set_xticks(X + 0.3) ax.set_xticklabels(['G1', 'G2', 'G3', 'G4']) plt.show()
关键修改说明
- 替换
fig.add_axes([0,0,1,1])为fig, ax = plt.subplots():这是matplotlib官方推荐的坐标轴创建方式,会自动为标题、轴标签预留足够的显示空间。 - 调整X轴刻度逻辑:把刻度定位在每组四个柱子的中心位置(
X + 0.3),再通过set_xticklabels单独设置数据集名称,避免参数混用导致的功能异常。
内容的提问来源于stack exchange,提问作者AnassBou
相关产品推荐
相关产品推荐

