python可视化计划完成情况

任务

每日打卡活动对我帮助很大,养成了早起的作息习惯,虽然早睡还不能保证。下面将计划的结果通过可视化显示在网页中。

准备

首先我们需要:

  • 表格统计自己的计划完成情况
  • python运行环境
  • python数据分析利器:pandas
  • python绘图利器:matplotlib
  • python可视化利器:pyecharts

过程

1. 统计表格

直接在excel中汇总,任务完成置1,未完成置0

并导出为csv文件,便于pandas读取。

2. 分析数据

在超好用的Jupyter Lab中运行,简单的几行代码,即可展现出刚才的表格:

head()函数打印部分行数
a. 每日完成率

简单来讲,只要把每天完成的总数除以全部任务数即可反映。pandas基础的函数就可以完成这一任务:

data.describe()
mean代表均值,也就是我们的完成率

那我们如何索引一行的值呢?

索引某列

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文件上传至网站云服务器文件夹下,即可访问

致谢

感谢小伙伴 @袋鼠 的大力支持!

感谢打卡队友的鼓励陪伴!

Leave a comment

Your email address will not be published. Required fields are marked *