成都网站建设07fly,公司做网站都需要什么材料,网站建设需求调研报告,个旧网络推广P老板#xff1a;小Lo啊#xff0c;你觉得这几个图好看吗我#xff1a;好看#xff0c;好看P老板#xff1a;我也觉得#xff0c;这个月的月报#xff0c;就用这个把#xff0c;你给我几个#xff0c;我看看我#xff1a;.....于是乎#xff0c;我们今天的目标是什么…P老板小Lo啊你觉得这几个图好看吗我好看好看P老板我也觉得这个月的月报就用这个把你给我几个我看看我.....于是乎我们今天的目标是什么画个环形图今天我们就来先画个简单的成品长这样是不是一模一样(很不要脸)之前我们有学习过如何用极坐标去掰弯柱状图(柱状图为什么不放过我)仔细看看环形图其实环形图就是掰弯柱状图的兄弟——条形图是不是很简单在matplotlib里柱状图用bar而条形就是barh 多了一个字母而已的我们先来画个条形图试试看from matplotlib import pyplot as pltfig plt.figure(figsize[13.44,7.5],facecolor(235/255,235/255,235/255))ax1fig.add_subplot(1,1,1,facecolor(235/255,235/255,235/255))plt.yticks(range(0,4,1), fontsize14)ax1.barh(height0.5,width0.1,y1,color(243/255,133/255,36/255))ax1.barh(height0.5,width0.2,y2,color(243/255,133/255,36/255))ax1.barh(height0.5,width0.3,y3,left0.1,color(243/255,133/255,36/255))可以发现在barh中控制条形位置和大小的参数主要是height,widthy和left其中height控制着条形图的宽度(真的不是width不是width不是width)也就是纵向的长度而width控制的是长度也就是横向的宽度y值控制着条形图中线在y轴的位置left控制从左边起那个位置开始画然后我们在add_subplot中打开极坐标他就变成了这样似乎崩了没关系我们继续。我们继续看看改改参数会有什么神奇的发现。fig plt.figure(figsize[13.44,7.5],facecolor(235/255,235/255,235/255))ax1fig.add_subplot(1,1,1,facecolor(235/255,235/255,235/255),projectionpolar)plt.yticks(range(0,5,1), fontsize14)#设置y轴的的刻度ax1.barh(height0.5,width0.1,y1,color(243/255,133/255,36/255))ax1.barh(height0.5,width1,y2,color(243/255,133/255,36/255))ax1.barh(height0.5,width1,y3,color(243/255,133/255,36/255))ax1.barh(height0.5,width1,y4,color(243/255,133/255,36/255))发现环形是从0读开始顺时针的画而且width控制的是环形的长度所以环形图的width也就是实际要画的图的X值然后再height调细调细后就变成了和例子差不多的然后再看看如何打上前端的小点点from matplotlib import pyplot as pltfig plt.figure(figsize[13.44,7.5],facecolor(235/255,235/255,235/255))ax1fig.add_subplot(1,1,1,facecolor(235/255,235/255,235/255),projectionpolar)plt.yticks(range(0,5,1), fontsize14)#设置y轴的的刻度ax1.barh(height0.05,width1,y2,color(243/255,133/255,36/255))ax1.scatter(x1,y2,color(243/255,133/255,36/255))ax1.barh(height0.05,width1,y3,color(243/255,133/255,36/255))ax1.scatter(x1,y3,color(243/255,133/255,36/255))ax1.barh(height0.05,width1,y4,color(243/255,133/255,36/255))ax1.scatter(x1,y4,color(243/255,133/255,36/255))用scatter然后barh的width变成了scatter的xy还是那个y我们在来做个小实验我们都知道极坐标应该输入的是θ和r一个表示角度一个表示半径才能确定一个点的位置那怎么在barh里换算θ和r呢比如我们要画一个这样的弧形弧形对应90度角从45度开始一直到135度from matplotlib import pyplot as pltimport numpy as npfig plt.figure(figsize[13.44,7.5],facecolor(235/255,235/255,235/255))ax1fig.add_subplot(1,1,1,facecolor(235/255,235/255,235/255),projectionpolar)plt.yticks(range(0,5,1), fontsize14)#设置y轴的的刻度ax1.barh(height0.05,width1,y2,color(243/255,133/255,36/255))ax1.scatter(x1,y2,color(243/255,133/255,36/255))ax1.barh(height0.05,width1,y3,color(243/255,133/255,36/255))ax1.scatter(x1,y3,color(243/255,133/255,36/255))ax1.barh(height0.05,width1*1/4*2*np.pi,y4,left1/4*np.pi,color(243/255,133/255,36/255))width1*1/4*2*np.pi,y4,left1/4*np.pi弧形就是圆周的截取圆周长公式d*2π至今乘以2π最开始笔者一直以为直径应该是y值也就是用2y* 2π 来算直径后来我发现我真的错我一开始就不该想的这么简单后来多次尝试后才发现原来TM的每个圆都是单位圆直径都是1所以你要长的弧长就直接算就好比如你要个半弧形width就是1*1/2*2*np.pi最后去掉网格线就搞定啦或者你想要换个方向的弧形比如例子你就把width的值加个符号就好了from matplotlib import pyplot as pltimport numpy as npfig plt.figure(figsize[13.44,7.5],facecolor(235/255,235/255,235/255))ax1fig.add_subplot(1,1,1,facecolor(235/255,235/255,235/255),projectionpolar)ax1.axis(off)ax1.barh(height0.005,width-0.4*3,y0.4,color(243/255,133/255,36/255))ax1.scatter(-0.4*3,0.4,color(243/255,133/255,36/255))ax1.barh(height0.005,width-0.5*3,y0.5,color(243/255,10/255,36/255))ax1.scatter(-0.5*3,0.5,color(243/255,10/255,36/255))ax1.barh(height0.005,width-2*2,y0.6,color(243/255,133/255,36/255))ax1.scatter(-2*2,0.6,color(243/255,133/255,36/255))ax1.barh(height0.005,width-0.5*np.pi*2,y0.7,color(243/255,133/255,36/255))ax1.scatter(-0.5*np.pi*2,y0.7,color(243/255,133/255,36/255))至于这么画出这种效果就当小作业了多思考把完毕撒花*********