Python之matplotlib绘制饼图


Posted in Python onApril 13, 2022

饼图的概念

饼图英文学名为Sector Graph,又名Pie Graph。常用于统计学模块。2D饼图为圆形,手画时,常用圆规作图。

仅排列在工作表的一列或一行中的数据可以绘制到饼图中。饼图显示一个数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)中各项的大小与各项总和的比例。饼图中的数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列。)显示为整个饼图的百分比。

Python之matplotlib绘制饼图

 连接数据库绘制饼图案例(pandas画图)

# -*- coding: utf-8 -*-
import pymysql
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']   #显示中文
plt.rcParams['axes.unicode_minus']=False       #正常显示负号
 
#连接Mysql数据库
db = pymysql.connect(host='localhost',  # 主机名
                    user='root',        # 用户名
                    password='root',    # 密码
                    database='mydb')  # 默认数据库
 
 
# 获取游标对象
cursor = db.cursor()
 
# 构造一个sql语句来查询统计数据
sql_str = "SELECT PROD_CATEGORY as 产品分类, ROUND(SUM(PRICE),2) as 总销售额, ROUND(SUM(PROFIT),2) as 总利润额  FROM orders WHERE FY=2019 GROUP BY PROD_CATEGORY"
 
# 执行sql语句
cursor.execute(sql_str)
 
# 获取查询结果
result = cursor.fetchall()
df = pd.DataFrame(result, columns=[cursor.description[i][0] for i in range(len(cursor.description)) ])
print(df)
df.set_index('产品分类').plot(kind='pie',y='总利润额',
                          #subplots=True, # 不使用y,画出所有列的饼图
                          figsize=(8,8),
                          
                         )

显示百分比

import matplotlib.pyplot as plt
 
sizes = df['总利润额']
labels = df['产品分类']
plt.figure(figsize=(5,5),dpi=120)
plt.pie(sizes,         # 每个扇区大小
        labels=labels, # 每个扇区标签
        autopct='%.2f%%', # 计算百分比格式 %格式%   %d%% 整数百分比  %.2f%% 小数点后保留2位的浮点数百分比
        
       )

Python之matplotlib绘制饼图

饼图常见参数

Python之matplotlib绘制饼图

扇区分离饼图

# 扇区分离
explode = [0 for i in range(len(sizes))]
explode[1]=0.1
plt.pie(sizes,labels=labels,explode=explode )
 
plt.title("饼图示例1")
plt.show()

Python之matplotlib绘制饼图

添加颜色

# 扇区颜色
colors=['r','g','b','#EEEEEE']
plt.pie(sizes,labels=labels,explode=explode,colors=colors )
 
plt.title("饼图示例2")
plt.show()

Python之matplotlib绘制饼图

添加阴影

# 添加阴影
shadow = True
plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=shadow)
plt.show()

Python之matplotlib绘制饼图

显示百分比

# 显示百分比
autopct='%.0f%%'
pctdistance=1.25
plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=shadow,autopct=autopct,pctdistance=pctdistance) 
plt.show()

Python之matplotlib绘制饼图

控制起始角度

# 起始角度
startangle=36 # (->0, <-180, 逆时针)
 
explode = [0 for i in range(len(sizes))]
explode[3]=0.1
shadow=False
plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=shadow,autopct=autopct,startangle=startangle) 
plt.show()

Python之matplotlib绘制饼图

将饼图放置在坐标轴

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['figure.dpi'] = 120
 
 
sizes = [10,10,10,70]
labels = ['A','B','C','D']
 
figure = plt.figure(figsize=(5,5),facecolor='#CCCCCC')
 
center=(5,4)  # 
 
plt.title("饼图详解示例")
pieces,labelses,pcts = plt.pie(sizes,labels=labels,center=center,frame=True,labeldistance=0.88,autopct='%.1f%%')
pieces[3].set(color='grey')
labelses[3].set(color='red')
pcts[3].set(color='green')

Python之matplotlib绘制饼图

双饼图显示

plt.rcParams['figure.dpi'] = 120
plt.figure(figsize=(8,4),facecolor='#EEEEEE')
 
center1=(1,0)
center2=(2.5,0)
 
plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=False,autopct=autopct,radius=0.5,
        center=center1,frame=True,labeldistance=0.9,rotatelabels=True) 
plt.pie(sizes,explode=explode,labels=labels,colors=colors,shadow=shadow,autopct=autopct,radius=0.5,
        center=center2,frame=True,labeldistance=0.9,rotatelabels=False) 
plt.show()

Python之matplotlib绘制饼图

饼图万能模板

import matplotlib.pyplot as plt
# 添加数据
sizes = [15, 30, 45, 10]
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
# 配置颜色
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
# 配置
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')
# 设置全局中文字体
plt.rcParams['font.sans-serif'] = 'KaiTi' # 设置全局字体为中文 楷体
plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号
# 设置图形上的各类主题值
# plt.suptitle('饼图',size=15,y=1.0)
plt.title("饼图", loc='center',size=15,y=1)
 
plt.title("王小王-123于2022年3月绘制", loc='right',size=10,y=1)
 
plt.show()

Python之matplotlib绘制饼图

到此这篇关于matplotlib绘制饼图的基本配置(万能模板案例)的文章就介绍到这了!

Python 相关文章推荐
Python文件与文件夹常见基本操作总结
Sep 19 Python
python递归打印某个目录的内容(实例讲解)
Aug 30 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
python日志logging模块使用方法分析
May 23 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 Python
Python线程池与GIL全局锁实现抽奖小案例
Python之Matplotlib绘制热力图和面积图
Python matplotlib绘制雷达图
Python万能模板案例之matplotlib绘制甘特图
Python万能模板案例之matplotlib绘制直方图的基本配置
python创建字典及相关管理操作
python微信智能AI机器人实现多种支付方式
You might like
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
python Matplotlib模块的使用
2020/09/16 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
问卷调查计划书
2014/01/10 职场文书
年度考核自我鉴定
2014/02/02 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
公证委托书模板
2014/04/03 职场文书
学生操行评语大全
2014/04/24 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python