python-matplotlib如何修改坐标轴刻度缩放系数标签的字体大小
matplotlib科学计数法量级标签字体大小调整方案
你遇到的坐标轴顶部/侧边的科学计数法量级标签(即offset text)属于坐标轴的独立文本元素,不会随普通刻度标签的设置同步变更,可通过以下方案调整:
解决方案
1. 针对单个坐标轴设置
获取对应坐标轴的offset文本对象,直接指定字号即可,示例代码:
# 调整x轴量级标签字号,字号数值按需修改 ax.xaxis.get_offset_text().set_fontsize(16) # 调整y轴量级标签字号 ax.yaxis.get_offset_text().set_fontsize(16)
如果需要同时修改字体、颜色等其他属性,也可以在该对象上调用对应方法:
# 示例:修改量级标签的字体与颜色 ax.xaxis.get_offset_text().set_fontfamily("Times New Roman") ax.xaxis.get_offset_text().set_color("black")
2. 全局统一设置所有图表
如果需要所有生成的图表的量级标签都统一字号,可通过rcParams全局配置:
import matplotlib.pyplot as plt # 全局设置量级标签字号,数值按需修改 plt.rcParams["axes.formatter.offset_size"] = 16 # 可同时配置触发科学计数法的数值范围,示例为数值小于1e-5或大于1e5时触发 plt.rcParams["axes.formatter.limits"] = [-5, 5]
完整可运行示例
import matplotlib.pyplot as plt import numpy as np # 生成带大/小数值的示例数据 x = np.linspace(0, 2e6, 100) y = np.linspace(0, 3e-4, 100) fig, ax = plt.subplots(figsize=(6,4)) ax.plot(x, y) # 设置普通刻度标签字号为14 ax.tick_params(axis="both", labelsize=14) # 同步设置量级标签字号为14 ax.xaxis.get_offset_text().set_fontsize(14) ax.yaxis.get_offset_text().set_fontsize(14) plt.show()

内容的提问来源于stack exchange,提问作者sapountzis
相关产品推荐
相关产品推荐

