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

Matplotlib绘图x轴显示全部刻度、灰色背景的解决方法

Matplotlib绘图问题解决方案

1. X轴刻度过密问题

你当前代码中plt.xticks(list(range(1, 72)))会强制将1~71的所有整数设为X轴刻度,这是刻度过多的直接原因。

  • 手动指定显示刻度:直接替换上述代码,按需设置步长即可,例如每10个Epoch显示一个刻度:
plt.xticks(list(range(0, 72, 10)), fontsize=40)
  • 自动适配刻度间隔:如果希望程序自动计算合理刻度,可以删除手动设置刻度的代码,或使用刻度定位器统一配置:
from matplotlib.ticker import MultipleLocator
ax = plt.gca()
# X轴每10个单位生成一个主刻度
ax.xaxis.set_major_locator(MultipleLocator(10))

2. 背景与轮廓样式调整

灰色背景是Matplotlib默认样式导致的,添加以下配置即可实现白色背景+黑色轮廓效果:

ax = plt.gca()
# 设置绘图区背景为白色
ax.set_facecolor("white")
# 设置所有坐标轴轮廓为黑色,可按需调整线宽
for spine in ax.spines.values():
    spine.set_color("black")
    spine.set_linewidth(2)
# 设置整张画布背景为白色
plt.gcf().set_facecolor("white")

修改后完整代码

import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

# 全局配置
plt.rcParams["figure.figsize"] = (60,30)
plt.figure()

# 坐标轴样式配置
ax = plt.gca()
ax.set_facecolor("white")
for spine in ax.spines.values():
    spine.set_color("black")
    spine.set_linewidth(2)
plt.gcf().set_facecolor("white")

# 网格配置
plt.grid(True, color='gray', linestyle='dashed', linewidth=0.5, axis='y') 

# 绘制曲线
plt.plot(df_stats['Training Loss'], color='b', marker='.', linestyle='solid', mec='b', markersize=24, markerfacecolor='white', label="Training", linewidth=7)
plt.plot(df_stats['Valid. Loss'], color='g', marker='.', linestyle='solid',  mec='b', markersize=24, markerfacecolor='white',label="Validation", linewidth=7)

# 图表标注配置
plt.title("Training & Validation Loss",fontsize=60)
plt.xlabel("Epoch", fontsize=52)
plt.ylabel("Loss", fontsize=52)
plt.legend(fontsize=50)

# 刻度配置
plt.xticks(list(range(0, 72, 10)), fontsize=40)
plt.yticks(fontsize=40)

plt.show()

调整刻度密度时,修改range(0,72,10)中的第三个步长参数即可,步长越大,显示的刻度数量越少。

参考效果示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:36:26