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

如何修改Matplotlib绘图的边框宽度?当前边框偏淡不清晰

调整Matplotlib图表边框宽度以提升清晰度

我用Python的Matplotlib库绘制了训练与验证损失图表,但图表边框偏淡,想调整边框宽度让它更清晰。以下是我的代码和效果截图:

原代码

df_stats
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
ax = plt.axes()

# Increase the plot size and font size.
plt.rcParams["figure.figsize"] = (300,200)
plt.title("Training & Validation Loss",fontsize=500)
plt.xlabel("Epoch", fontsize=500)
plt.ylabel("Loss", fontsize=500)
plt.xticks(list(np.arange(0, 30, 5)))
plt.xticks(fontsize=500)
plt.yticks(fontsize=500)
plt.plot(df_stats['Training Loss'], color='b', marker='.', linestyle='solid', mec='b', markersize=200, markerfacecolor='white', label="Training", linewidth=80)
plt.plot(df_stats['Valid. Loss'], color='g', marker='.', linestyle='solid',  mec='b', markersize=200, markerfacecolor='white',label="Validation", linewidth=80)
plt.grid(True, color='black', linestyle='dashed', linewidth=10, axis='x')
plt.grid(True, color='black', linestyle='dashed', linewidth=10, axis='y')  
plt.legend(fontsize=500, edgecolor='black')

当前效果

当前图表边框偏淡的效果

期望效果

边框清晰的图表效果

请问该如何调整图表的边框宽度?


解决方案

要让Matplotlib图表的边框(坐标轴的spines)变粗,有两种实用方法:

方法1:单独设置当前图表的边框宽度

你已经创建了ax = plt.axes()对象,可以直接遍历所有边框并设置线宽,在代码末尾添加:

# 遍历四个边框,设置统一宽度
for spine in ax.spines.values():
    spine.set_linewidth(40)  # 数值可根据你的大尺寸图表调整,确保视觉协调

方法2:全局设置默认边框宽度

如果希望所有Matplotlib图表都使用粗边框,可在导入库后配置全局参数:

import matplotlib.pyplot as plt
# 设置默认坐标轴边框宽度
plt.rcParams['axes.linewidth'] = 40

修改后的完整代码示例

df_stats
import matplotlib.pyplot as plt
import numpy as np

# 全局配置默认边框宽度(可选)
plt.rcParams['axes.linewidth'] = 40
plt.rcParams["figure.figsize"] = (300,200)

plt.figure()
ax = plt.axes()

plt.title("Training & Validation Loss",fontsize=500)
plt.xlabel("Epoch", fontsize=500)
plt.ylabel("Loss", fontsize=500)
plt.xticks(list(np.arange(0, 30, 5)))
plt.xticks(fontsize=500)
plt.yticks(fontsize=500)
plt.plot(df_stats['Training Loss'], color='b', marker='.', linestyle='solid', mec='b', markersize=200, markerfacecolor='white', label="Training", linewidth=80)
plt.plot(df_stats['Valid. Loss'], color='g', marker='.', linestyle='solid',  mec='b', markersize=200, markerfacecolor='white',label="Validation", linewidth=80)
plt.grid(True, color='black', linestyle='dashed', linewidth=10, axis='x')
plt.grid(True, color='black', linestyle='dashed', linewidth=10, axis='y')  
plt.legend(fontsize=500, edgecolor='black')

# 若未用全局配置,可单独设置当前图表边框
# for spine in ax.spines.values():
#     spine.set_linewidth(40)

设置后图表的四个边框会明显变粗,和你期望的效果一致。


内容的提问来源于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.19 12:15:42