【Python数据可视化】超星学习通助手后台数据的可视化处理

2022-06-24 21:47:46 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! CSDN@AXYZdong,CSDN首发,更多精彩内容请前往 AXYZdong的博客

环境:Python 3.7 用到的库:matplotlib 和 csv

文章目录

  • 一、前期准备
  • 二、获取数据
  • 三、可视化处理
  • 四、运行结果
    • 一、折线图
    • 二、条形图
  • 五、数据说明
  • 六、某助手停止维护后
    • 1、可视化处理
    • 2、效果
  • 总结

一、前期准备

安装 matplotlib 库,命令提示符栏输入

代码语言:javascript复制
pip install matplotlib

安装的时候可能有点慢,耐心等待。

关于matplotlib 库的使用方法,可以参考:Matplotlib.pyplot 常用方法

二、获取数据

脚本网站:https://greasyfork.org/zh-CN/scripts

到超星助手统计数据下载 .csv文件,并保存在与python文件相同的目录下。

提醒:拿到数据后,把第一行的英文删掉,不然 datetime.strptime() 函数转换数据时会出现错误

三、可视化处理

代码语言:javascript复制
# =============================================
# --*-- coding: utf-8 --*--
# @Time    : 2020-04-28
# @Author  : AXYZdong
# @CSDN    : https://blog.csdn.net/qq_43328313
# @FileName: demo_1.py
# @Software: Python3.7
# =============================================

import matplotlib.pyplot as plt     #导入库
from datetime import datetime       #导入模块datetime中的datetime类
import csv


date=[]                             #创建列表
installs=[]
update_checks=[]

with open('stats.csv', 'r') as f:   #提取stats.csv中的数据并保存在对应列表中
    reader = csv.reader(f)
     
    dates,installs = [],[]
    for row in reader:
        current_date = datetime.strptime(row[0],"%Y-%m-%d")  #包含日期信息的数据row[0]转为datetime对象
        dates.append(current_date)

        install = int(row[1])
        installs.append(install)
        
        update_checks.append(row[2])

plt.plot(dates,installs,color= 'red')  #采用条形图,颜色设置为红色

plt.title('the picture about xuexitong help installs', fontsize = 16)   #设置图片名称

plt.xticks(rotation=300)  #x轴标号旋转
plt.ylabel("", fontsize = 16)
plt.ylabel("Number", fontsize = 16)

plt.show()  

四、运行结果

一、折线图

二、条形图

仅修改一处代码即可

代码语言:javascript复制
plt.bar(date,installs,color= 'red')      

五、数据说明

统计的数据为 2018-06-19 ~ 2020-04-13 的安装数。

可见:2020-03~2020-04 这段时间数据爆棚,具体什么原因嘛,你懂得(手动滑稽)

六、某助手停止维护后

又一大佬开始接手,另一个脚本

1、可视化处理

代码语言:javascript复制
# =============================================
# --*-- coding: utf-8 --*--
# @Time    : 2020-04-28
# @Author  : AXYZdong
# @CSDN    : https://blog.csdn.net/qq_43328313
# @FileName: demo_2.py
# @Software: Python3.7
# =============================================

import matplotlib.pyplot as plt     #导入库
from datetime import datetime       #导入模块datetime中的datetime类
import csv


date=[]                             #创建列表
installs=[]
update_checks=[]

with open('stats1.csv', 'r') as f:   #提取stats1.csv中的数据并保存在对应列表中
    reader = csv.reader(f)
     
    dates,installs = [],[]
    for row in reader:
        current_date = datetime.strptime(row[0],"%Y-%m-%d")  #包含日期信息的数据row[0]转为datetime对象
        dates.append(current_date)

        install = int(row[1])
        installs.append(install)
        
        update_checks.append(row[2])

plt.plot(dates,installs,color= 'blue')  #采用条形图,颜色设置为蓝色

plt.title('the picture about xuexitong help installs', fontsize = 16)   #设置图片名称

plt.xticks(rotation=300)  #x轴标号旋转
plt.ylabel("", fontsize = 16)
plt.ylabel("Number", fontsize = 16)

plt.show()  

2、效果

总结

为了达到自己满意的效果,搞了好长时间 刚开始是 x 轴标号的问题,图片出来总是黑乎乎的一片,我以为是数据太多的问题,就没有考虑了 上传到博客后,发现坐标数值不对劲啊,和我预想的结果不一样。就开始查找各种资料,最后还是在《Python 编程 从入门到实践》中找到了解决办法。 小白的我学习 Python,遇到了各种问题,慢慢地一个个解决,到达自己满意的效果。

欢迎大佬批评指正

0 人点赞