Python中使用matplotlib画饼图详解

本文来自本人做的一个案例,经过比较,个人感觉Python中的matplotlib要比excel、R语言中ggplot2中画的饼图好看。


  • 解决画图中的中文乱码问题
  • 参数详解
  • 保存结果

解决画图中的中文乱码问题

为防止中文乱码问题,在导入pyplot之后,可以加一句,使用如下方法:

#-*- coding: utf-8 -*-
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文乱码

在这里插入图片描述

##参数详解

plt.figure(figsize=(6,9)) #调节图形大小
labels = [u'大型',u'中型',u'小型',u'微型'] #定义标签
sizes = [46,253,321,66] #每块值
colors = ['red','yellowgreen','lightskyblue','yellow'] #每块颜色定义
explode = (0,0,0,0) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes,
                      explode=explode,
                      labels=labels,
                      colors=colors,
                      autopct = '%3.2f%%', #数值保留固定小数位
                      shadow = False, #无阴影设置
                      startangle =90, #逆时针起始角度设置
                      pctdistance = 0.6) #数值距圆心半径倍数距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部的文本
# x,y轴刻度设置一致,保证饼图为圆形
plt.axis('equal')
plt.show()

在这里插入图片描述

###分割出来

plt.figure(figsize=(6,9)) #调节图形大小
labels = [u'大型',u'中型',u'小型',u'微型'] #定义标签
sizes = [46,253,321,66] #每块值
colors = ['red','yellowgreen','lightskyblue','yellow'] #每块颜色定义
explode = (0,0,0.02,0) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes,
                      explode=explode,
                      labels=labels,
                      colors=colors,
                      autopct = '%3.2f%%', #数值保留固定小数位
                      shadow = False, #无阴影设置
                      startangle =90, #逆时针起始角度设置
                      pctdistance = 0.6) #数值距圆心半径倍数的距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部的文本
# x,y轴刻度设置一致,保证饼图为圆形
plt.axis('equal')
plt.show()

在这里插入图片描述

###分割出来且有阴影

将参数explode = (0,0,0.03,0),shadow = True

在这里插入图片描述
###全部分割出来

将参数explode = (0.01,0.01,0.005,0.025)

在这里插入图片描述

###全部分割出来

增加图例

plt.figure(figsize=(6,9)) #调节图形大小
labels = [u'大型',u'中型',u'小型',u'微型'] #定义标签
sizes = [46,253,321,66] #每块值
colors = ['red','yellowgreen','lightskyblue','yellow'] #每块颜色定义
explode = (0,0,0.02,0) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes,
                      explode=explode,
                      labels=labels,
                      colors=colors,
                      labeldistance = 1.2,#图例距圆心半径倍距离
                      autopct = '%3.2f%%', #数值保留固定小数位
                      shadow = False, #无阴影设置
                      startangle =90, #逆时针起始角度设置
                      pctdistance = 0.6) #数值距圆心半径倍数距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部文本
# x,y轴刻度设置一致,保证饼图为圆形
plt.axis('equal')
plt.legend()
plt.show()

在这里插入图片描述

保存结果

plt.axis('equal')
plt.legend()
plt.savefig('d:/Python3.6.1/here/p2.png') #一定放在plt.show()之前
plt.show()

注意,plt.savefig()一定放在plt.show()之前,否则无法保存

  • 25
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 使用matplotlib饼图需要使用pyplot模块的pie()函数。示例代码如下: ``` python import matplotlib.pyplot as plt # 饼图的数据 labels = ['Frogs', 'Hogs', 'Dogs', 'Logs'] sizes = [15, 30, 45, 10] # 饼图 plt.pie(sizes, labels=labels) plt.show() ``` 其,参数sizes表示每个部分的大小,labels表示每个部分的标签。 ### 回答2: 要使用PythonMatplotlib饼图,首先我们需要导入必要的库和模块。通常我们会导入`matplotlib.pyplot`模块并给它起个别名`plt`方便使用。 然后,准备好饼图所需的数据。通常,一个饼图需要一个包含各个部分的数值的列表,以及一个包含各个部分名称的列表或元组。 接下来,我们可以用`plt.pie()`函数来饼图。这个函数有几个参数,其最重要的是`x`参数,它是一个包含数值的列表,表示每个部分的大小。其他一些常用的参数还包括`labels`用于指定每个部分的名称,`autopct`用于显示每个部分的百分比,`startangle`用于指定起始角度等。 最后,我们可以使用`plt.show()`函数将绘制的饼图显示出来。 下面是一个例子,假设我们要绘制一个表示水果销售量的饼图: ```python import matplotlib.pyplot as plt # 准备数据 sales = [50, 20, 15, 10, 5] # 水果销售量 fruits = ['苹果', '橙子', '香蕉', '梨子', '葡萄'] # 水果名称 # 饼图 plt.pie(sales, labels=fruits, autopct='%1.1f%%') # 显示饼图 plt.show() ``` 运行上述代码后,将会显示一个表示水果销售量的饼图,每个部分的大小表示对应水果的销售量比例,并显示每个部分的百分比。 ### 回答3: 要使用PythonMatplotlib库来饼图,首先需要导入相应的模块。一般来说,我们需要导入`matplotlib.pyplot`和`numpy`这两个模块。 下面是一个简单的例子来演示如何使用Matplotlib饼图: ```python import matplotlib.pyplot as plt import numpy as np # 创建一些示例数据 labels = ['A', 'B', 'C', 'D'] # 饼图的每个分区的标签 sizes = [15, 30, 45, 10] # 饼图每个分区的大小,总和应为100 # 绘制饼图 plt.pie(sizes, labels=labels, autopct='%1.1f%%') # 添加标题 plt.title('Pie Chart Example') # 展示饼图 plt.show() ``` 在这个例子,我们首先创建了一个`labels`列表,用于存储饼图的每一个分区的标签。然后创建了一个`sizes`列表,用于存储每个分区的大小,这些大小在总和上应该为100。接下来,我们使用`plt.pie()`函数来绘制饼图,其`labels`参数表示饼图的标签,`autopct`参数使得饼图上显示每个分区的百分比值。最后,我们使用`plt.title()`函数添加了一个标题,然后使用`plt.show()`展示了饼图。 通过这个简单的例子,你可以看到如何使用Matplotlib库来饼图。根据你的需求,你可以进一步调整参数,如颜色、阴影等来定制你的饼图。希望对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值