matplotlib 如何使用Excel数据使用Python创建3D曲面图

j8ag8udp  于 2023-03-30  发布在  Python
关注(0)|答案(1)|浏览(321)

我有以下数据可用,我需要在3D图中表示。
Random Data
不幸的是,我在网上找到的所有教程都定义了X和Y,并使用一个函数来定义Z。在我的例子中,我需要定义所有3个,然后生成一个图。
有人能帮我弄明白吗?
我试着为X,Y,Z创建行,并遵循一个示例,并能够生成一些东西,但不确定它是否正确。

jutyujz0

jutyujz01#

您可以在3D中绘制散点图:

import matplotlib.pyplot as plt
import numpy as np

# Create sample data
x = np.random.rand(10)
y = np.random.rand(10)
z = np.random.rand(10)

# Create 3D plot
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.scatter(x, y, z, c=z, cmap='viridis')
plt.show()

对于曲面图,需要两个1D数组来表示X和Y坐标,一个2D数组来表示Z值。可以使用np.meshgrid()从X和Y数组创建网格,然后使用生成的X、Y和Z数组通过plot_surface创建曲面图mpl_toolkits.mplot3d中的()函数。我在下面创建了一个简单的示例,因此您可以在曲面图之前查看数据的大小和外观:

import numpy as np
import matplotlib.pyplot as plt

# create data
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y)

# create plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, Z, cmap='coolwarm')

# add a color bar
fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

相关问题