使用1D X,Y和Z变量在python中进行2D等高线图

让我开始承认自己对Python非常陌生。我想在Python中创建数据的轮廓图,以使过程自动化,否则可以使用Surfer轻松进行。我有数千个这样的数据文件,而手动创建可能非常繁琐。 我正在使用的数据如下所示,它是一个具有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为2D数组;这就是混乱的开始。在完成了stackoverflow查询的几种解决方案之后,我做了以下事情:

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()

使用上面的代码可以得出该图。

1

但是,这是不希望的,如果一次可以通过表面噪声线看到,那么下面就会有序的轮廓线,从此处的冲浪者生成的轮廓图中可以看出,实际上是需要的。

2

我想重申,在生成冲浪者图时使用了相同的数据。

在创建所需图解方面的任何帮助都将受到高度赞赏。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...