python柱状图加百分比_【python】封装接口直接利用DataFrame绘制百分比柱状图

本文介绍了如何在Python中创建百分比柱状图,包括官方示例代码解析和问题解决过程。通过提供的函数`percentage_bar`,可以直接利用DataFrame绘制柱状图并显示每个部分的百分比。

手动反爬虫:原博地址

知识梳理不易,请尊重劳动成果,文章仅发布在优快云网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息

1. 背景前言

最近打比赛遇到的问题有点多,在绘制了堆叠柱状图之后,队长说不仅要看到具体的数量多少的堆叠图,还要看到具体占比的百分比柱状图,具体的样例可参考灵魂画图,因此也就产生了绘制百分比柱状图的需求

77069c2701d62619dc475c30e2b05578.png

2. 官方网址示例

2.1 matplotlib_percentage_stacked_bar_plot

里面的代码是真的长,完全属于一步步进行“堆砖块”然后才形成的百分比堆叠图,最终得出图结果如下:

33526a292c27a6e21aa79090eabbc557.png

2.2 percent-stacked-barplot

这个网址给出的代码比第一个网址给出的较为简洁,但是本质上都是属于一个个“砖块”的叠加,代码及生成的示例图形如下:

# libraries

import numpy as np

import matplotlib.pyplot as plt

from matplotlib import rc

import pandas as pd

# Data

r = [0,1,2,3,4]

raw_data = {'greenBars': [20, 1.5, 7, 10, 5], 'orangeBars': [5, 15, 5, 10, 15],'blueBars': [2, 15, 18, 5, 10]}

df = pd.DataFrame(raw_data)

# From raw value to percentage

totals = [i+j+k for i,j,k in zip(df['greenBars'], df['orangeBars'], df['blueBars'])]

greenBars = [i / j * 100 for i,j in zip(df['greenBars'], totals)]

orangeBars = [i / j * 100 for i,j in zip(df['orangeBars'], totals)]

blueBars = [i / j * 100 for i,j in zip(df['blueBars'], totals)]

# plot

barWidth = 0.85

names = ('A','B','C','D','E')

# Create green Bars

plt.bar(r, greenBars, color='#b5ffb9', edgecolor='white', width=barWidth)

# Create orange Bars

plt.bar(r, orangeBars, bottom=greenBars, color='#f9bc86', edgecolor='white', w

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值