gpt4 book ai didi

python - 如何防止 matplotlib 绘制相似值数组的浮点变化?

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:52 24 4
gpt4 key购买 nike

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.ones(1000)
plt.plot(x, y)

给出: enter image description here

但是

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.ones(1000) + np.random.normal(loc=0.0, scale=1E-12, size=1000)
plt.plot(x, y)

给出: enter image description here

这似乎是意外的行为,因为我没有更改绘图的任何关键字参数。即使数组值之间存在一些浮点变化,如何让第二个 y 值像第一个 y 值一样绘制?

最佳答案

您想保持相同的yrange并裁剪[0.95, 1.05]之外的点吗?

axes = plt.gca()
axes.set_ylim([0.95, 1.05])

默认情况下,matplotlib 设置 x 和 y 范围,以便显示每个点(请参阅 autoscale )。

但不,如果 float 足够接近整数,matplotlib(或 numpy)不会神奇地截断或舍入 float 。这会显示错误的值并且确实出乎意料。

zen of Python指定:

Explicit is better than implicit.

关于python - 如何防止 matplotlib 绘制相似值数组的浮点变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com