北京中科中医院 https://m.39.net/pf/bdfyy/bjzkbdfyy/年终岁尾,年马上过去,年即将到来,新的一年,小伙伴们有没有新的打算呢?年有没有计划呢?12月17日,期待已久的国产航母山东舰正式入列海军,在我国海军建设史上具有重要意义,意味着我国海军的再一次壮大。我国的航母12月27日,长征五号遥三运载火箭在文昌发射基地升空,意味着我国航天事业的又一次腾飞。航天事业的进步年底了,这些令人振奋的消息接踵而来……好消息接踵而至废话不多讲,马上开始我们今天的项目吧!今天,我们使用Python中matplotlib模块绘制各种全球十大航母战力排行对比图。喜欢Python绘图的小伙伴们福利来了,今天干货多多,千万别走开哦!如果你是个军迷,对航母感兴趣,请继续往下看,我们使用Python产生的图片或许对你也有用。准备工作电脑一台,安装Python编译环境和第三方模块。需要安装的第三方模块有numpy、matplotlib和pygal数据:网上查找一份全球十大航母战力排行数据,我已经准备好了,由于数据不多,下面以列表形式已经对它进行了格式化处理。数据准备好了,如下:aircraftCarrierInfo=[#名称:[排量(万吨)、长度(米)、舰载机(架)[美国福特,10,,85],#美国福特[美国尼米兹,10,,80],#美国改良尼米兹[俄罗斯库兹诺佐夫,6,,40],#俄罗斯库兹诺佐夫[中国辽宁,6,,50],#中国辽宁号[英国伊丽莎白,6.5,,40],#英国伊丽莎白女王[法国戴高乐,4.1,,40],#法国戴高乐[印度维克拉马迪亚,4.5,,30],#印度维克拉玛蒂亚[巴西圣保罗,3.4,,40],#巴西圣保罗[意大利加富尔,2.7,,20],#意大利加富尔[泰国扎克里纳吕贝,1.15,,30],#泰国扎克里·纳吕贝](备注:该数据来源于网络。)matplot初始化处理这里主要是三部分内容1.导入模块importmatplotlib.pyplotaspltimportpygal(使用另一种方式绘制雷达图)2.一些初始化设置这里设置选项比较多,不需要全部记忆,使用时查看文档即可。常用设置都在这里了,我们的绘图程序就是这么设置的。#设置输出的图片大小figsize=8,8figure,ax=plt.subplots(figsize=figsize)#不显示边框plt.gca().spines[right].set_color(none)plt.gca().spines[top].set_color(none)plt.gca().spines[left].set_color(none)plt.gca().spines[bottom].set_color(none)#将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆plt.axis(equal)#不显示X轴、Y轴的刻度值plt.xticks(())plt.yticks(())#显示图例plt.legend()3.模块的中文支持我们只需要在项目中添加下面两行内容即可实现中文正常显示。plt.rcParams[font.sans-serif]=[SimHei]#用来正常显示中文标签plt.rcParams[axes.unicode_minus]=False#用来正常显示负号这里我们默认将字体设置为微软雅黑字体(Windows系统),对于Linux系统选择一个支持中文的字体即可。(在plt.rcParams.keys()中查找这一属性即可)绘制柱形图世界十大航母排水量、长度、舰载机数量柱形图对比关键代码:#构建数据labels=[i[0]foriinaircraftCarrierInfo]y_data1=[i[1]foriinaircraftCarrierInfo]bar_width=0.7#将X轴数据改为使用range(len(x_data),就是0、1、2...P=plt.bar(x=labels,height=y_data1,label=labels,color=colors,alpha=0.8,width=bar_width)#在柱状图上显示具体数值,ha参数控制水平对齐方式,va控制垂直对齐方式forx,yinenumerate(y_data1):plt.text(x,y,%s%y,ha=center,va=bottom)#设置标题plt.title(世界航母排水量数据展示)#为两条坐标轴设置名称plt.xlabel(各国航母名称)plt.ylabel(排水量(单位:万吨))plt.show()这里只是绘制了排水量,绘制长度及舰载机数量对比图,我们只需要在y_data1中传入相应列的数据即可。效果展示产生的对比效果图示如下:世界十大航母长度数据对比图世界十大航母舰载机数量对比图世界十大航母排水量数据对比图好了,直观显示了各像数据的对比,孰优孰劣一眼就能看出来了。福特无论在排量还是在长度及舰载机数量上都排名第一。我国的航母在世界排名中居于中上位置。饼图绘制世界十大航母排水量、长度、舰载机数量通过饼图进行对比。上面的例子我们单个进行了绘制,下面我们使用matplotlib.subplot绘制子图功能,将排水量、长度、舰载机数量放在一个图中进行展示。关键代码:matplotlib.subplot()labels=[i[0]foriinaircraftCarrierInfo]sizes=[i[1]foriinaircraftCarrierInfo]#自定义颜色colors=tomato,teal,thistle,red,turquoise,\violet,wheat,skyblue,magenta,yellow#用于突出显示部分图例:中国辽宁号explode=0,0,0,0.1,9,0,0,0,0,0plt.pie(sizes,#数据explode=explode,#突出显示辽宁号labels=labels,#标签colors=colors,#颜色autopct=%1.1f%%,#设置百分比格式labeldistance=1.1,#设置标签和圆心的距离shadow=True,#设置阴影startangle=45,#饼图的初始角度)#将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆plt.axis(equal)#不显示X轴、Y轴的刻度值plt.xticks(())plt.yticks(())#添加图形标题plt.title(世界十大航母排量对比,fontsize=20,color=black,fontproperties=SimHei)效果展示产生的饼图如下所示世界十大航母排水量对比图世界十大航母长度对比图世界十大航母舰载机对比图整体效果是这样的世界十大航母整体战力对比图两种方式绘制雷达图雷达图能很直观的体现整体战力,代码就不粘贴了,我们直接上效果图。方法一:matpltlib绘制,绘制效果如下所示。用matplotlib绘制的雷达图从上面很容易看出,美国的福特级航母,无论在排水量、长度和舰载机数量,都可以堪称世界第一,而我们国家的航母则排名居中。方法二:pygal模块绘制,效果图如下所示。使用pygal绘制雷达图这个是不是比较matplotlib绘制的雷达图更加直观一点。怎么样,到底哪个雷达图好看呢?欢迎下方留下宝贵意见。其实,好不好看不重要,关键是我们通过Python绘制的这些图,能很直观的看出航母排名及战力信息。这里需要说明的是:在雷达图绘制时要将数据进行归一化处理,都处理为0-10之间的数据,这时,数据单位也要相应的提高倍数。怎么样?今天的内容就到这里了,喜欢的小伙伴们点个赞吧,今天的世界航母排名数据是从网上获取的,欢迎广大军事爱好者批评指正,大家还有好的绘图库吗?广大Python爱好者指正!欢迎到下方留言区进行留言。再给大家推荐一本书吧,不错的入门书!喜欢这个项目的朋友们
转载请注明:
http://www.jiushirangr.com/lyjd/28687.html