所以我的问题是如何通过为theta的一系列值计算r = f(theta)
然后转换f
和theta来为函数r
创建极坐标图r
使用等式x = r cos(theta)
,y = r sin(theta)
。
但我需要为r = (theta)^2
绘制螺旋0 <= theta <= 10*pi
这就是我到目前为止......没有在这里得到螺旋。
#! /usr/bin/env python
import matplotlib.pyplot as plt
from math import cos, sin, pi
from numpy import linspace
for theta in linspace(0,10*pi):
r = ((theta)**2)
x = r*cos(theta)
y = r*sin(theta)
plt.plot(x,y)
plt.savefig("spiral.png")
plt.show()
答案 0 :(得分:3)
您需要创建值列表,而不仅仅是单个点。在您的情况下,您继续计算x
和y
,但从不将它们保存在任何地方。所以你要绘制的是最后一次迭代后的(x,y)
对。
x = []
y = []
for theta in linspace(0,10*pi):
r = ((theta)**2)
x.append(r*cos(theta))
y.append(r*sin(theta))
plt.plot(x,y)
plt.show()
输出
答案 1 :(得分:0)
import numpy as np
import matplotlib.pyplot as plt
theta = np.radians(np.linspace(0,360*5,1000))
r = theta**2
x_2 = r*np.cos(theta)
y_2 = r*np.sin(theta)
plt.figure(figsize=[10,10])
plt.plot(x_2,y_2)
plt.show()