3

我正在尝试边做边学python。对于从 M 0.1 到 2.0 的大约 500,000 次地震(震源),我有真实世界的 xy(lat long dd)坐标和 z(地表以下公里)值。我在一个 .txt 制表符分隔的表中将数据缩减为 10 行 xyz 值。我想在 matplotlib 的 3d 散点图可旋转框中绘制数据。我可以使用基本命令来读取数据并且格式看起来不错。我不清楚是否需要将数据读入列表或数组中,以便 mpl 读取和绘制数据。我需要创建一个数组吗?

然后我想绘制油井的地下位置,给定沿井筒(大约 40 个位置)的顶点的 xyz 坐标,我是否需要创建折线?该数据与一些震中具有相同的一般坐标(有待进一步评估)。哪组数据应该是情节,哪组数据应该是子情节?另外,我不清楚在给定 he xy lat long 坐标的 6 到 7 位小数和 2 位小数 z 坐标的情况下我需要的“浮点数”。

4

1 回答 1

4

实际上,Matplotlib 是一个糟糕的选择。它不允许真正的 3D 绘图,也无法处理您需要的复杂性(或 3D 中的点数)。看看mayavi 吧

顺便说一句,听起来你在做微震?(我也是一名地球物理学家,不管它值多少钱。)

举个简单的例子:

from enthought.mayavi import mlab
import numpy as np

# Generate some random hypocenters
x, y, z, mag = np.random.random((4, 500))

# Make a curved well bore...
wellx, welly, wellz = 3 * [np.linspace(0, 1.5, 10)]
wellz =  wellz**2

# Plot the hypocenters, colored and scaled by magnitude
mlab.points3d(x, y, z, mag)

# Plot the wellbore
mlab.plot3d(wellx, welly, wellz, tube_radius=0.1)

mlab.show()

在此处输入图像描述

就读取数据而言,听起来应该很简单:

x, y, z = np.loadtxt('data.txt').T

你遇到了什么问题?

于 2012-05-24T15:41:24.323 回答