在 jupyter 中使用 matplotlib 绘制非常小的值
Plot very small values with matplotlib in jupyter
我正在尝试在 jupyter 笔记本(在 macbook pro 上)中使用 matplotlib 绘制一些非常小的值。但是,无论我是否设置 y 轴限制,我得到的只是一条平线。我所追求的是类似于下面关于 y 轴符号的示例 (png)。我还在 jupyter 之外尝试了相同的示例,但仍然得到相同的结果。这是代码 suggested by Andrew Walker on 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='.')
这是我得到的:
这就是我想要的:
最简单的方法是绘制乘以 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}]')
您可以在轴对象上使用 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 以了解有关此主题的更多信息。
我正在尝试在 jupyter 笔记本(在 macbook pro 上)中使用 matplotlib 绘制一些非常小的值。但是,无论我是否设置 y 轴限制,我得到的只是一条平线。我所追求的是类似于下面关于 y 轴符号的示例 (png)。我还在 jupyter 之外尝试了相同的示例,但仍然得到相同的结果。这是代码 suggested by Andrew Walker on 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='.')
这是我得到的:
这就是我想要的:
最简单的方法是绘制乘以 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}]')
您可以在轴对象上使用 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 以了解有关此主题的更多信息。