让我承认我是 Python 的新手,开始这个查询。我想在 Python 中创建数据的等高线图,以便自动化该过程,否则可以使用 Surfer 轻松执行。我有 1000 个这样的数据文件,手动创建可能会非常乏味。我正在使用的数据如下所示,它是一个带有 0、1 和 2 标头以及 1,2,..279 作为索引的数据框:
0 1 2
0 3 -1 -0.010700
1 4 -1 0.040100
2 5 -1 0.061000
3 6 -1 0.052000
4 7 -1 0.013100
.. .. .. ...
275 30 -9 -1.530100
276 31 -9 -1.362300
277 32 -9 -1.190200
278 33 -9 -1.083600
279 30 -10 -1.864600
[280 rows x 3 columns]
这里,
x=data[0]
y=data[1]
z=data[2]
由于轮廓函数 pf matplotlib 要求 z 是一个二维数组;这就是混乱开始的地方。在计算器查询的几种解决方案之后,我做了以下事情:
import numpy as np
x=np.array(x)
y=np.array(y)
z=np.array(z)
X, Y = np.meshgrid(x, y)
import scipy.interpolate
rbf = scipy.interpolate.Rbf(x, y, z, function='cubic')
Z=rbf(X,Y)
lmin=data[2].min()
lmax=data[2].max()
progn=(lmax-lmin)/20
limit=np.arange(lmin,lmax,progn)
fig, ax = plt.subplots(figsize=(6,2)) #x ranges between 3 to 57, y -1 to -10
ax.contour(X,Y,Z,limit)
ax.set_title('Contour Plot')
plt.show()
使用上面的代码可以得出该图。
然而,这是不希望的,如果一旦可以看穿表面噪声线,那么下面就会有有序的等高线,这实际上是需要的,从这里的冲浪者生成的等高线图中可以看出。
我想重申,生成冲浪图时使用了相同的数据。
在创建所需情节方面的任何帮助都将受到高度赞赏。
GCT1015
慕姐4208626
相关分类