繁体   English   中英

我如何将plot 3D整理成Python中的数据面?

[英]How do I plot 3D collated data as a surface in Python?

所以我有两个自变量 x 和 y,以及一组整理的因变量。 例如,对于 1000 的 y 值,根据 X 的不同,Z 有多个值。 我尝试根据我的目的修改下面的代码,但我几乎总是以一行数据结尾(存储在 .csv 文件中。)

我的 Z 数据是否需要采用特定的扁平化数组格式才能正常工作? 当我尝试类似的东西时,它总是给我 csv 文件的对角线值,而不是表面。

ax = plt.axes(projection='3d')

# Data for a three-dimensional line
zline = np.linspace(0, 15, 1000)
xline = np.sin(zline)
yline = np.cos(zline)
ax.plot3D(xline, yline, zline, 'gray')

# Data for three-dimensional scattered points
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens');

要得到plot一个3D的曲面,需要用到ax.plot_surface方法,如下图。

ax = plt.axes(projection='3d')

xpoints = np.linspace(0,5,100)
ypoints = np.linspace(0,5,100)
X, Y = np.meshgrid(x,y)
Z = np.cos(X) + np.sin(Y)

ax.plot_surface(X, Y, Z,  cmap='Greens')

不是直接提供 arrays 的坐标,而是需要使用np.meshgrid来获取 2D arrays 的坐标。 数组Z也应该是二维的,与XY具有相同的维度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM