Matplotlib基本图形之饼状图
饼状图特点: 饼状图显示一个数据系列中各项大小与各项总和的比例
饼状图的数据点显示为整个饼状图的百分比
示例代码
import os
import time
import numpy as np
import matplotlib.pyplot as plt basedir = os.path.dirname(os.path.abspath(__file__))
resultdir = os.path.join(basedir, 'result') class Create_pie(object): def __init__(self,data,labels,dst,name='',title='Title',aspect=1,autopct='%0.2f%%',explode=[],shadow=True):
''' :param data: 饼状图使用的数据,一般为列表
:param labels: 饼状图各个label名称,一般为列表
:param dst: 存放生成图片的文件夹路径
:param name: 图片的名称,默认为当前时间戳
:param title: 图片的标题,默认为Title
:param aspect: 图片x轴与y轴的比例,默认为1
:param autopct: 用来在饼状图上添加格式化字符串
:param explode: 饼状图各个饼叶偏离中心的距离占半径的比例,默认为不偏离
:param shadaw: 是否显示阴影,默认为显示
'''
self.data = data
self.labels = labels
self.dst = dst
self.name = name if name else str(int(time.time()))
self.title = title
self.aspect = aspect
self.autopct = autopct
self.explode = explode if explode else [x*0 for x in range(len(data))]
self.shadow = shadow def drew(self):
plt.axes(aspect=self.aspect)
plt.pie(
x = self.data,
labels = self.labels,
autopct = self.autopct,
explode= self.explode,
shadow = self.shadow
)
plt.title(self.title)
picname = self.name+'.jpg'
picdir = os.path.join(self.dst, picname)
plt.savefig(picdir)
实例化对象,运行程序
N = [39,46,55,73]
labels = ['A','B','C','D']
explode = [0,0.1,0,0]
PIC = Create_pie(N,labels,resultdir,explode=explode)
PIC.drew()
运行结果如下:
当shadow=False时,运行结果如下:
当不配置explode时,运行结果如下:
当不配置autopct时,运行结果如下: