我试图用jupyter笔记本中的matplotlib绘制一些非常小的值(在macbook pro上)。但是,无论我设置y轴限制,我得到的只是一条平线。我所追求的是类似于下面关于y轴符号的示例(png)。我也在jupyter之外尝试了相同的例子,我仍然得到相同的结果。以下是suggested by Andrew Walker上的代码my previous question:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(13,6))
ax = fig.add_subplot(111)
plt.hold(True)
xs = np.linspace(0, 1, 101)
ys = 1e-300 * np.exp(-(xs-0.5)**2/0.01)
ax.plot(xs, ys, marker='.')
这是我得到的:
这就是我追求的目标:
答案 0 :(得分:2)
最简单的方法是将您的值乘以10 ^ 300,然后更改y轴标签:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(13,6))
ax = fig.add_subplot(111)
plt.hold(True)
xs = np.linspace(0, 1, 101)
ys = np.exp(-(xs-0.5)**2/0.01)
ax.plot(xs, ys, marker='.')
ax.set_ylabel(r'Value [x 10^{-300}]')
答案 1 :(得分:0)
您可以在轴对象上使用set_ylim方法来执行您需要的操作,只需将代码更改为此代码即可满足您的需求:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(13,6))
ax = fig.add_subplot(111)
plt.hold(True)
xs = np.linspace(0, 1, 101)
ys = 1e-300 * np.exp(-(xs-0.5)**2/0.01)
ax.set_ylim([0,10^-299])
ax.plot(xs, ys, marker='.')
您可以查看This link以了解有关此主题的更多信息。