Matplotlib调整XY图坐标轴刻度字号与轴间距方法
Matplotlib坐标轴刻度字号与间距调整方案
需求说明
- 调大X、Y轴刻度(ticks)字体大小,与轴标签字号匹配(目标fontsize=30)
- 调整两个坐标轴的刻度间距,视觉效果对齐参考图
效果对比
期望参考效果

当前实现效果

初始实现代码
import matplotlib.pyplot as plt import matplotlib.ticker as ticker x = [1.53,0.84,0.7,0.6,0.53,0.47,0.38,0.35] y = [19.64,14.33,11.25,7.58,2.84,0.87,0.36,0] plt.plot(x, y, marker="o") plt.xlabel(r'Grid spacing $\AA$', fontsize=20) plt.ylabel('% error', fontsize=20) plt.title('Protein solvation', fontsize=20) plt.gca().invert_xaxis() plt.show()
实现代码
直接通过tick_params设置刻度字号,用MultipleLocator固定刻度间隔即可,修改后完整代码如下:
import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator x = [1.53,0.84,0.7,0.6,0.53,0.47,0.38,0.35] y = [19.64,14.33,11.25,7.58,2.84,0.87,0.36,0] fig, ax = plt.subplots(figsize=(8,6)) ax.plot(x, y, marker="o") # 统一设置轴标签、标题字号为目标值30 ax.set_xlabel(r'Grid spacing $\AA$', fontsize=30) ax.set_ylabel('% error', fontsize=30) ax.set_title('Protein solvation', fontsize=30) # 设置双轴主刻度标签字号为30,和轴标签字号匹配 ax.tick_params(axis='both', which='major', labelsize=30) # 设置刻度间距:X轴步长0.2,Y轴步长5,和参考图刻度密度一致 ax.xaxis.set_major_locator(MultipleLocator(0.2)) ax.yaxis.set_major_locator(MultipleLocator(5)) ax.invert_xaxis() plt.tight_layout() # 自动适配布局,避免大字号下标签被画布边缘截断 plt.show()
调整说明
- 如果需要调整刻度疏密,直接修改
MultipleLocator传入的步长参数即可,数值越小刻度越密集 - 画布尺寸
figsize可以根据自己的展示需求调整,不影响刻度字号和间距的设置逻辑
内容的提问来源于stack exchange,提问作者sphero
相关产品推荐
相关产品推荐

