繁体   English   中英

matplotlib.pyplot未正确设置散点图的对数轴范围

[英]Range of logarithmic axis of scatter plot is not being set appropriately by matplotlib.pyplot

我正在尝试在具有对数y轴的2D散点图上绘制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 ^ 110 ^ 2

这是注释掉第一点的图: 在此处输入图片说明

我在运行Python 2.7的jupyter笔记本中%matplotlib inline使用%matplotlib inline

编辑:我有相同的缩放错误。

将此添加到代码末尾

ax.set_ylim([0.001, 100])

它将强制轴行为。

这可能是一个朱庇特的事情?
当我从命令行将您的代码作为脚本运行(更改为不“内联”)时,轴可以正确缩放,而无需强制执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM