长春企业建站平台,青岛做英文网站的公司,建设网站意义,珠海响应式网站建设价格我真的很喜欢编程……但这是我的问题#xff1a;我不能发布图像,但我想要的图是一个“冠”(两个半径为a的同心圆)我的意思是,在数学上讲这很容易定义,但我怎么能用python程序呢#xff1f;我想到了这样的事情#xff1a;def Fm1(X, Y):r r sqrt(1.*X**21.*Y**2)cos 1.*X/r…我真的很喜欢编程……但这是我的问题我不能发布图像,但我想要的图是一个“冠”(两个半径为a的同心圆)我的意思是,在数学上讲这很容易定义,但我怎么能用python程序呢我想到了这样的事情def Fm1(X, Y):r r sqrt(1.*X**21.*Y**2)cos 1.*X/rsin 1.*Y/rteta where( sin 0. , arccos(cos) , -arccos(cos) )teta where(r 0. , 0., teta)return r, tetadef F(r,teta):X r*cos(teta)Y r*sin(teta)return X,Y这些只是让你从笛卡儿传递到极坐标的函数,然后rsy.linspace(a,b,N1) # radius divisiontsy.linspace(0,2.*pi,2**NN) #angle (theta) divisionR,Tmeshgrid(r,t) #creating a meshX,Y F(R,T)#transform from polar to cartesian#Plotting :figplt.figure()axfig.add_subplot(111)ax.plot(X, Y)plt.show()但结果是同心多边形.我希望我从半径a到半径b和2 ** NN线(原点中心和给定角度)等距离处有N 1个圆.对不起,我知道这真是一个微不足道的问题,谢谢解决方法:在我的回答中,我将使用两个库import numpy as npimport pylab我相信这些是您设置中的常量r_a 0.50r_b 0.75circles 6lines 50origin (0, 0)选项1直接绘图首先,绘制圆圈for r in np.linspace(r_a, r_b, circles):pylab.gca().add_patch(pylab.Circle(origin, radiusr,fillFalse, colorblack))然后绘制线条r_ab np.array([r_a, r_b])for theta in np.linspace(0, 2 * np.pi, lines):pylab.plot(np.cos(theta) * r_ab,np.sin(theta) * r_ab, colorred)最后,显示pylab.axis(scaled)pylab.show()结果选项2绘制细分(导入库并设置常量后,如上所述.)首先,计算点位置r,t np.meshgrid(np.linspace(r_a, r_b, circles),np.linspace(0, 2 * np.pi, lines))x r * np.cos(t)y r * np.sin(t)然后绘制圆圈(就像你一样)并绘制线条# Plot circlespylab.plot(x, y)# Plot lines (first and last x and y of each theta)pylab.plot(np.vstack((x[:,0], x[:, -1])),np.vstack((y[:,0], y[:, -1])))最后,显示pylab.axis(scaled)pylab.show()结果注意毕竟,我认为你真正需要的只是选项2中关于绘制线条的最后一点.我会在这里为所有未来的读者保留所有这些其他答案.标签python,matplotlib,grid,mesh来源 https://codeday.me/bug/20190629/1330154.html