我的教授希望我使用matplotlib
使用sin,cos和pi绘制一个圆。
我看了网上的几个主题和视频,但对如何解决问题一无所知
import numpy as np
import math
import matplotlib.pyplot as plt
r=5
t= np.arange(math.pi,-math.pi, 0.1)
x=r*math.sin(t);
y=r*math.cos(t);
plt.plot(x,y)
这是我尝试过的,但出现以下错误
TypeError:只有大小为1的数组可以转换为Python标量
答案 0 :(得分:1)
有两个问题:
1)您需要使用NumPy的sin
和cos
,因为math
版本不提供矢量化操作。您也可以从NumPy使用pi
,从而删除import math
2)您需要使用np.arange(-np.pi,np.pi, 0.1)
,即从负数开始,以0.1的步长变为正数。否则,请在您的实际代码中使用-0.1
。
import numpy as np
import matplotlib.pyplot as plt
r=5
t= np.arange(-np.pi,np.pi, 0.1)
x=r*np.sin(t);
y=r*np.cos(t);
plt.plot(x,y)
plt.axis('equal')
如果您想要一个完整的圆圈,可以使用
t= np.linspace(-np.pi, np.pi, 100)