python - Matplotlib 给出了意想不到的形状
问题描述
我正在尝试绘制几何函数:
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.cm as cmx
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import pylab
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
theta, phi = np.linspace(1e-5, 2 * np.pi-0.001, 400), np.linspace(1e-5, 3*np.pi/5.5, 400)
PHI, THETA = np.meshgrid(theta, phi)
theta1 = np.sqrt(7.5*(-1+np.sqrt(1-0.8*0.1*1./8.*(-8. + THETA*(5 + 3.*np.cos(2*PHI))/np.tan(THETA) + (5. + np.cos(THETA))* (np.sin(PHI))**2))))
R = (np.sin(theta1)+0.00000001)/(np.sin(theta1 + THETA)+0.00000001)
X = R * np.cos(THETA)
Y = R * np.sin(THETA) * np.cos(PHI)
Z = R * np.sin(THETA) * np.sin(PHI)
surf = ax.plot_surface(X, Y, Z)
plt.show()
在鼻子上,我得到了一个完全没有预料到的扭结。我应该得到一个平滑的抛物面型朝向鼻子。有什么办法可以解决这个问题吗?
解决方案
推荐阅读
- javascript - 鼠标右键 - 激活输入文件中的粘贴选项
- sql-server - 检索两个字符之间的日期的子字符串
- javascript - Google Chrome 扩展 GetElementById 无需点击即可触发
- php - mysli_fetch_assoc 中的数组减法
- angular - 重写 Angular 8 的引导程序下拉菜单
- javascript - svg.circle 上的 mouseover 和 mouseout 事件
- java - 上传文件时出现 HTTP 错误 400“所需的请求部分‘文件’不存在”
- php - 我如何通过控制器更改 Laravel 6.0 中的 .env 变量?
- javascript - 尽管返回错误语句,JavaScript 仍提交表单
- linux - Boost 托管映射文件 std::unordered_map Linux 分段错误