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

如何在Matplotlib中将科学计数法改为10^-6格式并设置粗体

解决方法及修改后代码

修改后完整代码

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
# 假设sig是已加载的numpy数组数据
import numpy as np

time = sig[:, 0]                                                    # 数据第一列:时间
displacement = sig[:, 1]                                            # 数据第二列:位移

font = {'family': 'Times New Roman', 'weight': 'bold', 'size': 16}  
fig, ax = plt.subplots(figsize = (9, 8))                            # 设置画布尺寸(宽,高)

ax.plot(time, displacement, linewidth = 2)                          

ax.set_xlim(0, 3e-3)                                                # 设置x轴范围
ax.set_ylim(-4e-6, 1e-6)                                            # 设置y轴范围

# 修正x轴刻度:先指定刻度对应数值位置,再设置显示标签,避免错位
ax.set_xticks([0, 0.5e-3, 1e-3, 1.5e-3, 2e-3, 2.5e-3, 3e-3])
ax.set_xticklabels([0, 0.5, 1, 1.5, 2, 2.5, 3])

# 将y轴科学计数法切换为10^格式
y_formatter = ticker.ScalarFormatter(useMathText=True)
y_formatter.set_powerlimits((-3, 3))  # 设置触发科学计数法的数值阈值
ax.yaxis.set_major_formatter(y_formatter)

# 设置刻度标签样式
ax.tick_params(labelsize = 16)                                      # 设置刻度标签字号
labels = ax.get_xticklabels() + ax.get_yticklabels()                
for label in labels:                                                # 设置刻度标签的字体和加粗
    label.set_fontname('Times New Roman')
    label.set_fontweight('bold')

# 设置科学计数法偏移文本(如10^-6)的字体样式
ax.yaxis.offsetText.set_fontname('Times New Roman')
ax.yaxis.offsetText.set_fontweight('bold')
ax.yaxis.offsetText.set_fontsize(16)

ax.set_xlabel('Time (msec.)', font)
ax.set_ylabel('Displacement (m)', font)

plt.show() 

关键修改说明

  • 切换科学计数法格式:使用ScalarFormatter并开启useMathText=True,让Matplotlib采用TeX上标格式(10^-6)替代默认的1e-6;set_powerlimits()用于控制触发科学计数法的数值范围,适配你的数据区间。
  • 加粗科学计数法标签:坐标轴旁的科学计数法偏移文本(如y轴的10^-6)需单独设置,通过ax.yaxis.offsetText获取该文本对象,直接指定字体和加粗属性。
  • 修正x轴刻度错位:原代码仅设置刻度标签未指定对应数值位置,可能导致标签与实际刻度错位,新增set_xticks()指定刻度对应的真实数值,再设置显示标签保证对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:24:30