gpt4 book ai didi

python - 没有 float 伪影的轮廓

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:30 25 4
gpt4 key购买 nike

我在轮廓数据之后进行线性插值。对于计算我使用浮点型,因为我不知道输入数据中有多少小数。有时可能没有小数,有时是一位或十位以上。

不幸的是,由于在相同值的插值和等高线之后使用 float ,我得到了不需要的伪像。我该如何修复我的代码,以便在不应该出现的地方不产生轮廓伪影?

简单代码示例:

import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt

interval_in = np.linspace(1, 100, 10)
interval_out = np.linspace(1, 100, 100)
xin, yin = np.meshgrid(interval_in, interval_in)
zin = np.ones((10, 10))*10
xout, yout = np.meshgrid(interval_out, interval_out)
zout = griddata((xin.flatten(),yin.flatten()),zin.flatten(),(xout,yout),method='linear')

contours = plt.contour(xout, yout, zout, levels=[10])
plt.show()

Contour artifacts

最佳答案

在您的示例中,zout 应该全部为 10。但实际上在 9.9999999999999982 和 10.000000000000002 之间变化,因此 contour 试图绘制此图。您可以使用 numpy 舍入到给定的精度,

zout_ = np.round_(zout, decimals=3)
contours = plt.contour(xout, yout, zout_, levels=[10])
plt.show()

不过,如果您的数据范围很大,轮廓应该可以正常工作...

关于python - 没有 float 伪影的轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38178014/

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