为了账号安全,请及时绑定邮箱和手机立即绑定

使用网格数据绘制轮廓时只看到 NAN

使用网格数据绘制轮廓时只看到 NAN

慕的地10843 2021-10-26 18:56:08
我正在尝试获得十个点的二维等高线图我尝试使用 griddata 来生成我的网格,但是它似乎不起作用,我只能在我的插值网格中看到 NAN。import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom scipy.interpolate import griddataxi = np.linspace(0,7500.0,100)yi = np.linspace(0,7500.0,100)indie_coords_y=[195,695,1195,1695,2195,2695,3195,3695,4195,4695]indie_coords_x=[87,90,92,95,97,100,103,105,107,110]z1_final=[12,13,14,15,16,17,18,19,20,21]zi = griddata((indie_coords_x, indie_coords_y), z1_final, (xi[None,:], yi[:,None]), method='linear')CS = plt.contourf(xi,yi,zi,cmap='jet', vmin=min(z1_final), vmax=max(z1_final))当我使用上面的代码时,我看到我的 zi 数组只有 NAN 值,而我希望看到一些轮廓任何人都可以帮忙吗
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我修改了输入数据(shuffle indie_coords_y)。此外,必须对网格的所有点执行插值。np.meshgrid用于构建完整的网格。.flatten()用于将网格转换为点列表(即形状为 number_of_points x number_of_dim 的数组)。插值后,reshape用于将点列表转换回网格(两个 n × n 数组)。


现在插值和图形正在工作:


import numpy as np

import matplotlib.pyplot as plt

from scipy.interpolate import griddata


# Data

indie_coords_y = [195, 2195, 3195, 2695, 3695, 4695, 695, 1195, 1695, 4195] # Modified! 

# using np.random.shuffle(indie_coords_y)

indie_coords_x = [87,90,92,95,97,100,103,105,107,110]


z1_final = [12,13,14,15,16,17,18,19,20,21]


# Interpolation

xi = np.linspace(80, 120.0, 30)  # modified range

yi = np.linspace(0, 5000.0, 30)


X_grid, Y_grid = np.meshgrid(xi, yi) # Create a grid (i.e. 100x100 arrays)


zi = griddata((indie_coords_x, indie_coords_y), z1_final,

              (X_grid.flatten(), Y_grid.flatten()), method='linear')


Z_grid = zi.reshape( X_grid.shape )


# Graph

CS = plt.contourf(X_grid, Y_grid, Z_grid, cmap='jet')


plt.plot(indie_coords_x, indie_coords_y, 'ko', label='data points')

plt.plot(X_grid.flatten(), Y_grid.flatten(), 'r,', label='interpolation points')

plt.xlabel('x'); plt.ylabel('y');

plt.colorbar(); plt.legend();

该图是:

//img1.sycdn.imooc.com//6177dee800010a8703790265.jpg

查看完整回答
反对 回复 2021-10-26
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信