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

如何为Matplotlib柱状图添加X轴与Y轴刻度标记

给图表添加X/Y轴刻度标记的实现方法

你的代码默认已经显示了X/Y轴刻度,但如果需要自定义刻度的位置、标签或范围,可以通过plt.xticks()和plt.yticks()实现,以下是具体操作:

1. 自定义X轴刻度

如果你想手动指定X轴显示哪些索引(避免1000个刻度过于密集),可以直接指定刻度位置和对应的标签:

# 选择要显示的行位置(比如第0、200、400...个数据点)
custom_x_positions = [0, 200, 400, 600, 800, 999]
# 使用原数据的索引作为刻度标签
custom_x_labels = result1.index[custom_x_positions]
# 设置X轴刻度
plt.xticks(ticks=custom_x_positions, labels=custom_x_labels, rotation=0, fontsize=60)

2. 自定义Y轴刻度

如果需要固定Y轴的刻度范围和间隔,比如从0到0.4,每0.05一个刻度:

import numpy as np  # 需要先导入numpy

plt.yticks(ticks=np.arange(0, 0.41, 0.05), fontsize=60)

修改后的完整代码(含中文注释)

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 提取实际数据并重命名列
comparison1 = testing_data_points_unscaled[["Climate change (kg CO2 eq.)"]]
PL_new1 = comparison1.rename(columns={"Climate change (kg CO2 eq.)": "实际气候变化(反归一化)(kg CO2 eq.)"})
k1 = PL_new1.head(1000)

# 提取预测数据
comparison2 = prediction_DE_normalized["Predicted Climate change (De-normalized) (kg CO2 eq.)"]
kk1 = comparison2.head(1000)

# 合并实际与预测数据
result1 = pd.concat([k1, kk1], axis=1)
# 可选:将预测列名改为中文
result1 = result1.rename(columns={"Predicted Climate change (De-normalized) (kg CO2 eq.)": "预测气候变化(反归一化)(kg CO2 eq.)"})

# 设置绘图样式和尺寸
plt.style.use('seaborn-deep')
plt.rcParams["figure.figsize"] = (90, 35)

# 绘制柱状图
plotdata = pd.DataFrame(result1)
plotdata.plot(kind="bar")

# 设置图例
plt.legend(loc=0, prop={'size': 50})

# 设置标题与轴标签
plt.title("实际 vs 预测气候变化", fontsize=70)
plt.xlabel("索引", fontsize=50)
plt.ylabel("kg CO2 eq.", fontsize=50, labelpad=40)  # labelpad增加标签与刻度的间距

# 自定义X轴刻度
custom_x_positions = [0, 200, 400, 600, 800, 999]
custom_x_labels = result1.index[custom_x_positions]
plt.xticks(ticks=custom_x_positions, labels=custom_x_labels, rotation=0, fontsize=60)

# 自定义Y轴刻度
plt.yticks(ticks=np.arange(0, 0.41, 0.05), fontsize=60)

# 调整刻度样式
plt.tick_params(labelsize=60)
plt.grid(False)

# 隐藏右侧和顶部边框
ax = plt.gca() 
ax.spines["right"].set_visible(False)
ax.spines["top"].set_visible(False)
ax.yaxis.offsetText.set_fontsize(50)

# 显示图表
plt.show()

注意事项

  • 如果不需要自定义刻度,保留原代码中的plt.xticks(rotation=0)和plt.tick_params(labelsize=60)即可,matplotlib会自动根据数据生成默认刻度。
  • 若图表刻度显示异常,可能是因为figure.figsize设置过大导致刻度挤压,可以适当调整宽高比例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:10:28