1

考虑我已按如下方式加载数据集:

ds = yt.load('pltxxx')

数据集包括以下字段密度、mag_vort、tracer、x_velocity、y_velocity

在这种情况下,可以简单地绘制 mag_vort,它是 2D 域中的涡量大小,方法是:

slc = yt.SlicePlot(ds, 'z', 'mag_vort')

如果我想在 txt 文件(或 numpy 数组)中导出 x 坐标、y 坐标和 vorticity_magnitude 或通过 matplotlib 散点图绘制它

plt.scatter(x_coor, y_coor, c=mag_vort)

有没有一种简单的方法可以从数据集中提取这些信息?

4

1 回答 1

3

您可以使用数据对象(在本例中我们使用all_data数据对象)来访问 、 和 字段的'x'字段'y''mag_vort'

ad = ds.all_data()
x = ad['x']
y = ad['y']
mag_vort = ad['mag_vort']

从访问数据对象返回的数组是YTArray实例。是附有单位YTArray的 numpy 的子类。ndarray

在将这些数组传递给 matplotlib 之前,将它们转换为您想要在其中进行绘图的任何单位,然后将它们转换为 numpy 数组:

x_plot = np.array(x.to('km'))
y_plot = np.array(y.to('km'))
plt.scatter(x_plot, y_plot, c=np.array(mag_vort))
于 2018-02-25T00:44:51.097 回答