将“ y”轴设置为科学计数法

时间:2019-07-18 11:37:13

标签: python matplotlib

我希望我的y轴以科学计数法格式化。

我尝试过matplotlib documentation,但是它忽略了我的命令。

import matplotlib.pyplot as plt
import numpy as np


x = np.random.randint(1e4, size=200)
y = np.random.randint(1e4, size=200)

plt.ticklabel_format(axis='both', style='sci')
plt.xlabel('x')
plt.ylabel('y')
plt.scatter(x,y, color='b', s=5, marker=".")

plt.show()

我的输出只是以非科学的符号出现。

例如,我希望ylabel 10001E03

此代码仅是示例。

我有一个子图,其中图1和图3是科学计数法,而图2是非科学计数法。

谢谢。

2 个答案:

答案 0 :(得分:3)

您应该将scilimits=(4,4)添加到命令中

plt.ticklabel_format(axis='both', style='sci', scilimits=(4,4))

例如,您的代码将变为:

x = np.random.randint(1e4,size=200)
y = np.random.randint(1e4,size=200)
plt.ticklabel_format(axis='both', style='sci', scilimits=(4,4))
plt.xlabel('x')
plt.ylabel('y')
plt.scatter(x,y, color='b', s=5, marker=".")
plt.show()

答案 1 :(得分:1)

通过

plt.ticklabel_format(axis='both', style='sci', scilimits=(0,0))

为我工作。

(如@ Meysam-Sadeghi所建议,但没有plt.subplots())