所以我有一条曲线y = 1—(x—1)** 2,其中x是[1,2]的元素,我想画出这条线绕y轴的旋转曲面.我有点卡住了,没有太多有用的信息任何地方.

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')

x = np.linspace(1,2,500)
y = np.linspace(0,2*np.pi,500)

U,V = np.meshgrid(x,y)

Y1 = (1-(U-1)**2)*np.cos(V)
Z1 = (1-(U-1)**2)*np.sin(V)

ax.plot_surface(Y1, U, Z1, alpha=0.3, color='red', rstride=6, cstride=12)
ax.view_init(45, 0)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.ylim(-1, 3)
plt.show()    

所以我真的不知道怎么做,所以它对应于什么要求.这是我第一次问问题

推荐答案

一个更好的命名规则会帮助你:你所说的x实际上是你的图中的半径r,而你所说的y实际上是一个Angular φ.所以你真的有极坐标(在x—z平面上),

X=r COS(Phi)

Z=rSin(Phi)

Y=1-(r-1)^2

import numpy as np
import matplotlib.pyplot as plt

r = np.linspace( 1.0, 2.0, 100 )
phi = np.linspace( 0.0, 2 * np.pi, 100 )
R, PHI = np.meshgrid( r, phi )

X = R * np.cos( PHI )
Z = R * np.sin( PHI )
Y = 1 - ( R - 1 ) ** 2

fig = plt.figure()
ax = fig.add_subplot( 1, 1, 1, projection='3d')
ax.plot_surface( X, Y, Z, alpha=0.3, color='red' )
ax.view_init( 45, 45 )
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.ylim(-1, 3)
plt.show()

enter image description here

Python相关问答推荐

使用numpy提取数据块

如何将ctyles.POINTER(ctyles.c_float)转换为int?

试图找到Python方法来部分填充numpy数组

Pandas 滚动最接近的价值

沿着数组中的轴计算真实条目

无法通过python-jira访问jira工作日志(log)中的 comments

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

为什么默认情况下所有Python类都是可调用的?

使用groupby Pandas的一些操作

给定高度约束的旋转角解析求解

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

为什么Python内存中的列表大小与文档不匹配?

使用字典或列表的值组合

Python将一个列值分割成多个列,并保持其余列相同

计算机找不到已安装的库'

合并相似列表

使用np.fft.fft2和cv2.dft重现相位谱.为什么结果并不相似呢?

极柱内丢失类型信息""

如何在Quarto中的标题页之前创建序言页

如何在PYTHON中向单元测试S Side_Effect发送额外参数?