Python数据可视化之Matplotlib(饼图)

使用Matplotlib提供的pie()函数绘制饼图

import matplotlib.pyplot as plt

import matplotlib.font_manager as fm #字体管理器


#准备字体

my_font = fm.FontProperties(fname="/usr/share/fonts/wqy-microhei/wqy-microhei.ttc")


#准备数据

data = [0.16881,0.14966,0.07471,0.06992,0.04762,0.03541,0.02925,0.02411,0.02316,0.01409,0.36326]


#准备标签

labels = ['Java','C','C++','Python','Visual Basic.NET','C#','PHP','JavaScript','SQL','Assembly langugage','其他']


#将排列在第4位的语言(Python)分离出来

explode =[0,0,0,0.3,0,0,0,0,0,0,0]


#使用自定义颜色

colors = ['red','pink','magenta','purple','orange']


#将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆

plt.axes(aspect='equal')


#控制X轴和Y轴的范围(用于控制饼图的圆心、半径)

plt.xlim(0,8)

plt.ylim(0,8)


#不显示边框

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.pie(x=data, #绘制数据

labels=labels,#添加编程语言标签

explode=explode,#突出显示Python

colors=colors, #设置自定义填充色

autopct='%.3f%%',#设置百分比的格式,保留3位小数

pctdistance=0.8, #设置百分比标签和圆心的距离

labeldistance=1.0,#设置标签和圆心的距离

startangle=180,#设置饼图的初始角度

center=(4,4),#设置饼图的圆心(相当于X轴和Y轴的范围)

radius=3.8,#设置饼图的半径(相当于X轴和Y轴的范围)

counterclock= False,#是否为逆时针方向,False表示顺时针方向

wedgeprops= {'linewidth':1,'edgecolor':'green'},#设置饼图内外边界的属性值

textprops= {'fontsize':12,'color':'black','fontproperties':my_font},#设置文本标签的属性值

frame=1) #是否显示饼图的圆圈,1为显示



#不显示X轴、Y轴的刻度值

plt.xticks(())

plt.yticks(())


#添加图形标题

plt.title('20188月的编程语言指数排行榜',fontproperties=my_font)

#显示图形

plt.show()

 

 

 

转载于:https://www.cnblogs.com/lone5wolf/p/10871008.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-17363.html

如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网进行投诉反馈,一经查实,立即删除!


相关文章:

  • 分桶法和平方分割
  • jQuery post使用变量作参数名
  • nginx php-fpm安装配置 CentOS编译安装php7.2
  • C#获取C# DLL中的指定接口的所有实现实例 - qq_19759475的博客 - CSDN博客
  • CF1137E Train Car Selection(单调栈维护凸函数)
  • [转] Batch Normalization
  • 图的学习
  • 提取全局应用程序集中的dll
  • vue-devtools安装及使用
  • if判断与while、for循环语句
  • java架构的演变
  • bzoj2631:tree
  • pycharm秘籍
  • 背包问题小总结
  • LeetCode 343. 整数拆分(Integer Break) 25
  • Java 在Word创建表格
  • Golang 入门系列(十三)用Beego开发web应用
  • Friend List
  • 禁止tomcat的Catina.out的累计输出
  • 学习进度十四
  • selenium webdriver 通信过程
  • HL7入门书
  • apache sentry
  • Mysql源码编译安装主从复制
  • 2018 Multi-University Training Contest 7 - GuGuFishtion
  • arrive 和reach 的区别
  • Mybatis源码研究7:缓存的设计和实现
  • 前端向后台发送请求有几种方式?
  • AtomicInteger的CAS算法浅析
  • LeetCode Count of Smaller Numbers After Self
  • 微信分享ios 不显示图片和简介问题总结
  • 前端框架Bootstrap
  • LeetCode 976. 三角形的最大周长(Largest Perimeter Triangle) 33
  • java内置的四大函数式接口
  • Wannafly挑战赛2D Delete (最短路好题)
  • sensors
  • LeetCode - 709. To Lower Case
  • 《C++程序设计POJ》《WEEK3 类和对象进阶》成员对象和封闭类/友元/this指针/常量成员函数...
  • 第7.3节 Python特色的面向对象设计:协议、多态及鸭子类型
  • NOIP Day -151
  • 微信小游戏排行榜设计技术梳理
  • Luogu P1967 货车运输 倍增+最大生成树
  • django路由层 虚拟环境 视图层
  • 基本操作2-常用命令
  • IdentityServer4学习及简单使用
  • centos出现“FirewallD is not running”
  • 数组去重(1)
  • mybatis 的 dao 接口跟 xml 文件里面的 sql 是如何建立关系的?
  • Gitlab 服务器搭建
  • vuejs开发流程