我想将抛物面f(r)= r ** 2绘制为2D极地热图。我期望的输出是
我写的代码是
<div ng-repeat="json in myJson">
<li>{{json.name}}</li>
</div><h1>
total:
</h1>
$scope.myJson = [
{
"id": "1",
"name": "banana",
"price": 12,
"qty": 3,
},
{
"id": "2",
"name": "watermelon",
"price": 12.9,
"qty": 4,
}
]
有人可以帮忙吗?提前谢谢。
答案 0 :(得分:5)
我认为你无意中混淆了radius
,zenith
和azimuth
:)
这绘制了我认为你想要的东西:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
fig = plt.figure()
ax = Axes3D(fig)
rad = np.linspace(0, 5, 100)
azm = np.linspace(0, 2 * np.pi, 100)
r, th = np.meshgrid(rad, azm)
z = (r ** 2.0) / 4.0
plt.subplot(projection="polar")
plt.pcolormesh(th, r, z)
#plt.pcolormesh(th, z, r)
plt.plot(azm, r, color='k', ls='none')
plt.grid()
plt.show()
如果您想要光线网格线,可以按照以下方式在每个Theta中添加它们:
plt.thetagrids([theta * 15 for theta in range(360//15)])
和更像这样的径向网格:
plt.rgrids([.3 * _ for _ in range(1, 17)])
PS:numpy和pyplot会让你的命名空间保持整洁......