matplotlib.pyplot 未正确设置散点图的对数轴范围
Range of logarithmic axis of scatter plot is not being set appropriately by matplotlib.pyplot
我正在尝试在具有对数 y 轴的二维散点图上绘制 5 个点 (x, y)。绘图已生成,但 y 轴的范围选择不当,因此仅显示一个点。当我删除第一个点 (0.38, 0.005) 时问题就消失了。
这是 matplotlib 中的错误吗?
有人可以尝试复制这个吗?
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
emissions_abs_pts = np.array([
[0.38, 0.005], # without this point it scales appropriately
[0.42, 0.05],
[0.67, 0.5],
[0.96, 5.0],
[1.0, 50.0]
])
fig, ax = plt.subplots(1, 1)
ax.scatter(emissions_abs_pts[:,0], emissions_abs_pts[:,1])
ax.set_yscale('log')
以下是包含所有五点的情节:
注意 y 轴范围是 10^1 到 10^2
这是第一点被注释掉的情节:
我正在使用 %matplotlib inline
和 jupyter notebook 运行 Python 2.7.
编辑:我遇到了同样的缩放错误。
将此添加到代码末尾
ax.set_ylim([0.001, 100])
它将强制轴运行。
这可能是一个 jupyter 的东西?
当我从命令行 运行 你的代码作为脚本时(将其更改为 "inline"),轴正确缩放而不需要强制它们。
我正在尝试在具有对数 y 轴的二维散点图上绘制 5 个点 (x, y)。绘图已生成,但 y 轴的范围选择不当,因此仅显示一个点。当我删除第一个点 (0.38, 0.005) 时问题就消失了。
这是 matplotlib 中的错误吗?
有人可以尝试复制这个吗?
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
emissions_abs_pts = np.array([
[0.38, 0.005], # without this point it scales appropriately
[0.42, 0.05],
[0.67, 0.5],
[0.96, 5.0],
[1.0, 50.0]
])
fig, ax = plt.subplots(1, 1)
ax.scatter(emissions_abs_pts[:,0], emissions_abs_pts[:,1])
ax.set_yscale('log')
以下是包含所有五点的情节:
注意 y 轴范围是 10^1 到 10^2
这是第一点被注释掉的情节:
我正在使用 %matplotlib inline
和 jupyter notebook 运行 Python 2.7.
编辑:我遇到了同样的缩放错误。
将此添加到代码末尾
ax.set_ylim([0.001, 100])
它将强制轴运行。
这可能是一个 jupyter 的东西?
当我从命令行 运行 你的代码作为脚本时(将其更改为 "inline"),轴正确缩放而不需要强制它们。