我正在使用Python 3.9和matplotlib 3.7,在macos上的jupyter笔记本电脑上工作。
x值的范围为0到500 000。打开科学记数法时,它使用10^5作为数量级。我希望它显示为10^3的倍数
下面是一些示例代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5e5, 10e3)
y = np.random.random_sample(len(x))
mm = 1 / 25.4
f, ax = plt.subplots(figsize=(210 * mm, 148 * mm), dpi=600)
ax.plot(x, y)
ax.ticklabel_format(axis='x', style='sci', scilimits=(0,0),useMathText=True, useOffset=False)
得出以下结果:x ticks as multiples of 10^5
我希望5 x 10^5显示为500 x 10^3,例如
我尝试使用ticklabel_formatter函数中的参数创建一个mpl.ticker.ScalarFormatter对象,但是在向其提供对象时,我得到了一个位置错误,因为它需要2个参数。
我尝试将powerlimits属性和orderOfMagnitude属性设置为3,但是ScalarFunction拒绝了这些关键字参数。
我看了这篇文章here,但是xaxis.set_major_formatter不接受我的格式化程序对象。
1条答案
按热度按时间iyfjxgzm1#
您需要使用
matplotlib.ticker
模块来实现这一点。因此,实现方式如下所示:
结果如下所示:
不容易找到,所以这里有一个链接到文档:
https://matplotlib.org/stable/api/ticker_api.html