openpyxl 绘制饼形图_5.5 图表绘制 : 作图模板的练习 :Pie图|饼图

该博客介绍了如何使用openpyxl库结合matplotlib在Python中绘制饼形图。通过实例展示了创建饼图的过程,包括数据准备、参数设置、颜色配置和图例添加。内容涵盖数据框数据的使用、图表样式调整和图形布局。
摘要由CSDN通过智能技术生成

# -*- coding:utf-8 -*-

import numpy as np

import pandas as pd

from itertools import cycle

from IPython.display import Image

import matplotlib.pyplot as plt

import matplotlib as mpl

import matplotlib.font_manager as mfm

import matplotlib.gridspec as gridspec

import matplotlib.ticker as plticker

目标图表形式

加入数据

data = pd.DataFrame(np.array([['5.0', '4.5-5', '4-4.5', '3.5-4', '0-3.5'],

[10, 46, 38, 18, 4]]).T,

columns = ['评论星级','频数']

)

data

4edbeeeaacdb

直接画出饼图

参数设置,方便后面直接进行使用

font_path = {}

prop = {}

font_path['hei'] = './font/MSYHMONO.ttf'

font_path['english'] = './font/Calibri.ttf'

for font_name in list(font_path):

prop[font_name] = mfm.FontProperties(fname=font_path[font_name])

title_font = prop['hei'].copy()

title_font.set_size(14)

default_colors = {}

default_colors['blue'] = '#6CADDD'

default_colors['yellow'] = '#F3903F'

default_colors['red'] = '#CB615A'

default_colors['orange'] = '#F3903F'

default_colors['gray'] = '#B4B4B4'

default_colors['lightyellow'] = '#FCC900'

default_colors['royalblue'] = '#5488CF'

# 构造颜色的循环迭代器

color_cycle = cycle(['blue', 'orange', 'red', 'lightyellow', 'royalblue'])

# 饼图

fig = plt.figure(figsize=(5.708,2.756))

gs = gridspec.GridSpec(1, 1)

ax = fig.add_subplot(gs[0])

length = len(data)

explode = np.ones(length)*0.03

labels = data['评论星级']

plt.title(u'星级分布', y=1.08, fontproperties=title_font)

colors = list(default_colors.values())

patches = ax.pie(data['频数'], explode=explode, labels=labels, colors=colors, autopct='%d%%')

handles = []

for i, l in enumerate(labels):

handles.append(mpl.patches.Patch(color=colors[i],label=l))

ax.legend(handles, labels, loc="center right", frameon=False)

ax.axis('equal')

gs.tight_layout(fig)

fig

4edbeeeaacdb

练习

用类的形式做出饼图的模板

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值