我的z值介于0到120之间,但是在插值时会得到各种值, 就像:
-6644476.02694383,-5957351.6613517,-5270227.29575958, -4583102.93016746,-3895978.56457534,-3208854.19898321, -2521729.83339109,-1834605.46779897,-1147481.10220685, -460356.73661473,226767.6289774
在绘制值的直方图时,我看到这些也不例外。
黄色是x,y和z值的子集,问题仍然存在。如何为该数据提供一个不错的热图或轮廓图?是我注意到插值问题吗?
谢谢。
import os
import scipy.interpolate
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x = [1.9710875 , 1.97108964, 1.97109007, 1.97109292, 1.97109334,
1.9710962 , 1.95156674, 1.95156508, 1.95157082, 1.95156844,
1.96684663, 1.96496047, 1.96583682, 1.95277214, 1.94814652,
1.95401576, 1.93962844, 1.97185149, 1.96532794, 1.96371958,
1.960543 , 1.9512862 , 1.97803334, 1.96579507, 1.96716609,
1.96771556, 1.96538601, 1.96611962, 1.96227168, 1.98252509]
y = [41.28326547, 41.28326585, 41.28325479, 41.28325527, 41.28324439,
41.28324487, 41.26949818, 41.2694979 , 41.26948285, 41.26948246,
41.28184153, 41.27412078, 41.27296658, 41.26923199, 41.26891926,
41.270562 , 41.27069284, 41.26754844, 41.2826392 , 41.28118129,
41.27474794, 41.27390083, 41.2798385 , 41.28465282, 41.28064395,
41.28030224, 41.2822276 , 41.28023088, 41.28004796, 41.28501738]
z = [ 90.23937225, 90.23937225, 90.33037567, 90.33037567,
90.33137512, 90.33137512, 84.36405182, 111.60513306,
82.31817627, 111.61412811, 22.88290024, 42.28657913,
72.6518631 , 110.51089478, 95.98405457, 63.98109818,
1.10047495, 58.42002487, 48.07130814, 55.71062851,
53.7532196 , 48.63370132, 66.60357666, 46.88467407,
27.61787987, 39.42815781, 42.52419281, 33.85250854,
68.59270477, 66.66952515]
f = scipy.interpolate.interp2d(x, y, z, kind='cubic')
x2 = np.linspace(min(x), max(x), 500)
y2 = np.linspace(min(y), max(y), 500)
xx2, yy2 = np.meshgrid(x2, y2)
zz2 = f(x2, y2)
CS = plt.contourf(x2, y2, zz2, 15, cmap=plt.cm.rainbow)
plt.colorbar() # draw colorbar
# plot data points.
plt.show()