在python中绘制一个螺旋,其中r = theta ^ 2为0< = theta< = 10 * pi ...

时间:2015-02-16 20:09:04

标签: python

所以我的问题是如何通过为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()

2 个答案:

答案 0 :(得分:3)

您需要创建值列表,而不仅仅是单个点。在您的情况下,您继续计算xy,但从不将它们保存在任何地方。所以你要绘制的是最后一次迭代后的(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()

输出

Sprial

答案 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()

spiral.png