如何修改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
相关产品推荐
相关产品推荐

