画图标签和图大小_Matpltolib图鉴基础饼图

fc09f5860f8ed0f12add62c34f15e0d5.gif

大家好,从今天起,我们将开始更新Matplotlib饼图图鉴。

本文为基础散点图第一篇,将讲解以下三个简单的饼图绘制方法8cdccd5ca2cea1ce85662a7242fee75c.pngdc219061f7a40c47096d177887884227.png1296ea107287fd040fcf6d8a0d0d1a6c.png

饼图绘制说明

因本文是Matplotlib饼图的开篇,因此先简单讲一下柱状图的绘图原理,在Matplotlib中,饼图可以使用plt.pie制作饼图。绘图基本套路请见Matplotlib绘图原理讲解。

有关plt.pie其他参数说明如下:

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, *, data=None)

  • x: array, 代表了每部分的值。每个标签占多大,会自动去算百分比。
  • explode: list, 将某一块分割出来;例如[0,0,0.5,0] 将第四块分割出来且数值越大分割出来越大
  • label: list, 每一部分标签
  • colors: array-like, 使用颜色。详见色卡rgb
  • autopct: 百分比精确到小数点末尾
  • pctdistance: 数值距圆心半径倍数距离
  • shadow: 饼图阴影的大小
  • labeldistance: 标签的距离
  • startangle: 第一块楔形开始的角度
  • radius: 饼图的半径
  • counterlock: 画图方向
  • wedgeprops: 传递给楔形对象的楔形对象的参数字典。
  • textprops: 传递给文本对象的参数字典。
  • center: 图表的中心位置
  • frame: True则图表绘制轴框架
  • rotatelabels: True则每个标签旋转到相应切片的角度

Returns:

  • patches : list, patches饼图的返回值
  • texts : list, 饼图外label的文本
  • autotexts : list, 饼图内部的文本返回值

下面我们将稍微添加/修改部分参数,制作其他样式的基本饼图

基础饼图-001

下面我们就来讲解如何绘制基础饼图,注意,代码在以下环境全部通过测试:

  • Python == 3.7.1
  • matplotlib == 3.0.2
  • pandas == 0.23.4
  • numpy == 1.15.4

因版本不同,可能会有部分语法差异,如有报错,请先检查拼写及版本是否一致!

首先导入相关库

import matplotlib
print(matplotlib.__version__) #查看Matplotlib版本
import pandas as pd
print(pd.__version__) #查看pandas版本
import numpy as np
print(np.__version__) #查看numpy版本
import matplotlib.pyplot as plt 
plt.rcParams['font.sans-serif'] = ['SimHei']  #设置中文

首先是不带任何修饰的饼图,代码如下

plt.figure(figsize=(9,8),dpi = 100) 
sizes = [150,250,300,60] 
patches,text= plt.pie(sizes)
plt.title("基础饼图",fontsize = 20)

plt.show()
0f1a49b2ca8889eb303329d6382c0e26.png

基础饼图-002

现在介绍如何修改颜色和增加标签、数值

plt.figure(figsize=(8,9),dpi = 100) 
labels = ['A','B','C','D'] 
sizes = [150,250,300,60] 
colors = ['#B0C4DE','#ADD8E6','#87CEFA','#4682B4'] #每块颜色定义
patches,l_text,p_text = plt.pie(sizes,
                      labels=labels,
                      colors=colors,
                      autopct = '%3.2f%%', #数值保留固定小数位
                      startangle = 90, #逆时针起始角度设置
                      pctdistance = 0.5       
                      ) #数值距圆心半径倍数距离

# 修改标签内数值和字体的大小
for t in l_text:
    t.set_size(30)
for t in p_text:
    t.set_size(17)

plt.title("基础饼图 - 修改颜色和增加标签、数值",fontsize = 25) 
plt.axis('equal')
plt.show()
8f3ba2b569993e4a53d09d451c274fb4.png

基础饼图003

现在进一步修改增加阴影、分割块并添加图例

plt.figure(figsize=(8,9),dpi = 100) 
labels = ['A','B','C','D'] 
sizes = [150,250,300,60] 
colors = ['#FE4365','#FC9D9A','#F9CDAD','#C8C8A9']
explode = (0,0,0.1,0) #分割出来第三部分
patches,l_text,p_text = plt.pie(sizes,
                      explode=explode,
                      labels=labels,
                      colors=colors,
                      autopct = '%3.2f%%', 
                      shadow = True, #设置阴影设置
                      startangle = 90,
                      pctdistance = 0.5       
                      )

plt.legend(patches, labels,
          loc="center left",
          bbox_to_anchor=(1, 0.2, 1, 1),
          fontsize=20)

for t in l_text:
    t.set_size(30)
for t in p_text:
    t.set_size(17)

plt.title("基础饼图 - 修改增加阴影、分割块和图例",fontsize = 25) 
plt.axis('equal')

plt.show()
a7df4ab75b960b5ac6959915ab8a12a8.png

以上就是本期三副图鉴的全部内容,更多精美图表欢迎关注后续更新。

以上代码均已通过测试,如有报错,请先检查拼写与版本,若在某个版本中需要修改,欢迎在留言区指出,我会添加至对应使用说明中。谢谢!

375505b27f289aeb97e08475e9e7500f.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值