gpt4 book ai didi

python - 如何在 Python 中使用 matplotlib 生成 2D 绘图的革命

转载 作者:行者123 更新时间:2023-11-30 21:54:10 27 4
gpt4 key购买 nike

我在 Python 中使用 matplotlib 创建了一个 2D 绘图,一个例子是:2D plot of some points它是使用 2 个列表生成的:

import matplotlib.pyplot as plt
import numpy as np

plt.plot(X, Y) #X and Y are lists, containing the x and y coordinates of points respectively
plt.show()

现在我想围绕 Y 轴创建该图的旋转,并以 Y 轴垂直的方式将其可视化。如何使用 matplotlib 来完成此操作?

最佳答案

如果您将一条曲线定义为两个一维数组中 xy 点的集合,并且您希望将它们围绕 y 旋转> axis 您只需使用 np.outer() 获取 x 的外积来构造 2D 数组即可满足 matplotlib 的 Axes3D.plot_surface > 使用 np.cos(theta)np.sin(theta) 表示 [0, 2π] 中的 theta。这将为您提供 xy 空间中的笛卡尔点集合,这些点将表示通过绕 z 轴旋转每个原始点而创建的圆。由于 plot_surface() 所期望的 shape,构造 z 数组有点棘手。

这是一个完整的示例,演示了此方法并将其与原始 2D 图进行比较

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

n = 100

fig = plt.figure(figsize=(12,6))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122,projection='3d')
y = np.linspace(np.pi/8, np.pi*4/5, n)
x = np.sin(y)
t = np.linspace(0, np.pi*2, n)

xn = np.outer(x, np.cos(t))
yn = np.outer(x, np.sin(t))
zn = np.zeros_like(xn)

for i in range(len(x)):
zn[i:i+1,:] = np.full_like(zn[0,:], y[i])

ax1.plot(x, y)
ax2.plot_surface(xn, yn, zn)
plt.show()

enter image description here

关于python - 如何在 Python 中使用 matplotlib 生成 2D 绘图的革命,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59402531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com