让我开始承认自己对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()
使用上面的代码可以得出该图。
但是,这是不希望的,如果一次可以通过表面噪声线看到,那么下面就会有序的轮廓线,从此处的冲浪者生成的轮廓图中可以看出,实际上是需要的。
我想重申,在生成冲浪者图时使用了相同的数据。
在创建所需图解方面的任何帮助都将受到高度赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。