任务
每日打卡活动对我帮助很大,养成了早起的作息习惯,虽然早睡还不能保证。下面将计划的结果通过可视化显示在网页中。
准备
首先我们需要:
- 表格统计自己的计划完成情况
- python运行环境
- python数据分析利器:pandas
- python绘图利器:matplotlib
- python可视化利器:pyecharts
过程
1. 统计表格
直接在excel中汇总,任务完成置1,未完成置0
并导出为csv文件,便于pandas读取。
2. 分析数据
在超好用的Jupyter Lab中运行,简单的几行代码,即可展现出刚才的表格:
a. 每日完成率
简单来讲,只要把每天完成的总数除以全部任务数即可反映。pandas基础的函数就可以完成这一任务:
data.describe()
那我们如何索引一行的值呢?
索引某列
pandas中获取某一列,可以通过字典的索引方式,例如右图这个语句将列名为“一”的所以值取出:
但索引某行需要另外一个函数,由于mean是这个表的索引,则通过loc()函数实现:
我们可以直接使用pandas与matplotlib联合作图:
#导入matplotlib库
import matplotlib.pyplot as plt
%matplotlib inline
#显示中文字符
font = {'family' : 'SimHei',
'weight' : 'bold',
'size' : '8'}
plt.rc('font', **font) # pass in the font dict as kwargs
#绘图
data.describe().loc['mean'].plot(kind = 'bar',color='g')
#添加标题
plt.title('每日完成率')
#保存图片至本地
plt.savefig('daily.png')
要导入matplotlib库,由于数据较少,反映出的图像信息较普通:
b.任务完成率
下面我们对每个任务的完成情况进行统计
首先统计已有数据
validNum=data.set_index('item').iloc[0].count()
添加新列
data['sum']=data.sum(axis=1) #总数
data['ratio']=data['sum']/validNum #完成率
可视化
plt.ylim(0, 1.1)
data.set_index('item')['ratio'].plot(
kind = 'bar',
width = 0.8,
alpha = 0.8,
)
最强的可视化!
先来看看示例:
所以我们只需把任务和任务完成数传入即可。
data[['item','sum']].values.tolist()
相同格式Get!
成功!
把html文件上传至网站云服务器文件夹下,即可访问!
致谢
感谢小伙伴 @袋鼠 的大力支持!
感谢打卡队友的鼓励陪伴!