怎么新建MySQL数据库

发布时间:2022-05-20 作者:admin
阅读:388
这篇文章主要介绍“用Python怎样画堆叠条形图,技巧是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“用Python怎样画堆叠条形图,技巧是什么”文章能帮助大家解决问题。

目前在网络上多是单个条形图堆叠,没看到一组的条形图堆叠。
代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

导入一组自己造的数据

data  = pd.read_excel('data.xlsx')
In [4]: data
Out[4]:

多使用几个plt.bar()函数,就可以画出来啦。。。

tick_label = list(data.columns)
tick_label.remove(‘类别')
x = np.arange(len(tick_label))

y1 = data.iloc[2,1:].values.tolist() #收入(剔除自己转入)
y2 = data.iloc[3,1:].values.tolist() #支出(剔除自己转入)
y3 = data.iloc[4,1:].values.tolist() #收入(自己转入)
y4 = data.iloc[5,1:].values.tolist() #支出(自己转入)
bar_with = 0.25 #柱体宽度plt.figure(figsize = (12,6)) #画布大小
plt.bar(x, y1, width = bar_with, #柱体宽度
align = ‘center', #x轴上的坐标与柱体对其的位置
color = ‘orangered', alpha = 0.6, #柱体透明度
label = ‘收入(剔除自己转入)')
plt.bar(x,y3,width = bar_with, bottom = y1, #柱体基线的y轴坐标
align = ‘center', color = ‘lightsalmon', alpha = 0.6, label = ‘收入(自己转入)')
plt.bar(x + bar_with, y2, width = bar_with,
align = ‘center', color = ‘deepskyblue', alpha = 0.6, label = ‘支出(剔除自己转入)')
plt.bar(x + bar_with, y4, width = bar_with, bottom = y2,
align = ‘center', color = ‘lightskyblue', alpha = 0.6, label = ‘支出(自己转入)')
plt.title(‘月度收支表', fontsize = 10) #设置x轴标题
plt.xticks(x + bar_with/2, tick_label, rotation = 70) #设置x轴坐标
plt.xlabel(‘时间',fontsize = 8, verticalalignment = ‘top', horizontalalignment=‘right',rotation=‘horizontal')
plt.xlabel(‘时间',fontsize = 8, verticalalignment = ‘bottom', horizontalalignment=‘center')

#图例设在图形外面,控制坐标参数
plt.legend(loc = ‘center', bbox_to_anchor = (0.77, 1.1), ncol=2)
plt.savefig(‘draw_bar.png', dpi=200, bbox_inches = ‘tight')
plt.close()

绘制如图:

是不是其实plt绘图也没有哪么辣眼睛了。。。


以上就是关于“用Python怎样画堆叠条形图,技巧是什么”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,欢迎关注群英网络,小编每天都会为大家更新不同的知识。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

二维码-群英

长按识别二维码并关注微信

更方便到期提醒、手机管理

7*24 全天候服务

售前 400-678-4567

售后 0668-2555666

售后 400 678 4567

信息安全 0668-2555 118

域名空间 3004329145