我对编程非常新手...
但这是我的问题:
我无法发布图片,但我希望拥有的绘图是一个“皇冠”(两个半径为a的同心圆), 从数学上讲很容易定义,但我该如何使用Python程序实现呢?
我想到了这样一个方法:
def Fm1(X, Y):
r =r = sqrt(1.*X**2+1.*Y**2)
cos = 1.*X/r
sin = 1.*Y/r
teta = where( sin >= 0. , arccos(cos) , -arccos(cos) )
teta = where(r == 0. , 0., teta)
return r, teta
def F(r,teta):
X = r*cos(teta)
Y = r*sin(teta)
return X,Y
那些只是让你从笛卡尔坐标系转换到极坐标系的功能,然后:
r=sy.linspace(a,b,N+1) # radius division
t=sy.linspace(0,2.*pi,2**NN) #angle (theta) division
R,T=meshgrid(r,t) #creating a mesh
X,Y = F(R,T)#transform from polar to cartesian
#Plotting :
fig=plt.figure()
ax=fig.add_subplot(111)
ax.plot(X, Y)
plt.show()
但结果是:同心多边形。我希望从半径a到半径b有N+1个等距圆,并且有2 ** NN条线段(原点中心和给定角度)。抱歉,我知道这是一个非常琐碎的问题,谢谢。
where
、ones
、Fcm1
、meshgrid
和Fc
是什么? - Kevina
。 - Kevinmatplotlib
添加了一个标签,以及它的子集函数pylab
。 - Geoff