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

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

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

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

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

一、前期准备

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

pip install matplotlib

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

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

二、获取数据

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

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

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

三、可视化处理

# =============================================
# --*-- 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()  

四、运行结果

一、折线图

在这里插入图片描述

二、条形图

仅修改一处代码即可

plt.bar(date,installs,color= 'red')      

在这里插入图片描述

五、数据说明

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

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

六、某助手停止维护后

又一大佬开始接手,另一个脚本
在这里插入图片描述

1、可视化处理

# =============================================
# --*-- 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,遇到了各种问题,慢慢地一个个解决,到达自己满意的效果。

欢迎大佬批评指正 ? ? ?

看完就赞,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

「你可能还想看」系列文章:
小白如何入门Python?记我的Python初体验
揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱
【Python制作词云】分析QQ群聊信息,记录词频并制作词云
【Python制作词云】改变词云字体颜色
【Python】给PDF添加水印

520快到了,我用代码画了一幅画「可以送给自己喜欢的人」
「情人节快到了」“码”出礼物,一片“芯”意

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151755.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Origin绘图 默认字体设置[通俗易懂]

    Origin绘图 默认字体设置[通俗易懂]Origin绘图的默认字体设置

    2022年5月31日
    100
  • 分布式事务 java代码_Java分布式事务概念与实现示例[通俗易懂]

    分布式事务 java代码_Java分布式事务概念与实现示例[通俗易懂]在java中有如下三种事务,简单的JDBC级的事务JTA-在EJB环境下,用户得到事务并进行控制CMP-完全由容器控制事务,用户通过Bean配置文件来定义事务行为二三种都支持分布式事务,但只支持Java环境下的分布式事务。下面讨论如何在Java程序里实现分布式事务,即在同一个事务里访问多个数据源。实际上就是如何使用JTA.这里假设使用oracle数据库,使用webLogic部署应用,所要做…

    2022年5月8日
    50
  • Java MD5 加密工具类[通俗易懂]

    Java MD5 加密工具类[通俗易懂]一、MD5简介MD5消息摘要算法(英语:MD5Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5算法是不可逆的。MD5由美国密码学家罗纳德·李维斯特(RonaldLinnRivest)设计,于1992…

    2022年7月16日
    17
  • Java面向对象三大特征的理解

    Java面向对象三大特征的理解面向对象三大特征的理解初始理解封装继承多态初始理解其实这些知识很早就有接触,而且一些概念也牢记于心了。自己叙述面向对象的特征会是这样的:面向对象的三大特征是封装、继承和多态。封装是对代码的封装以实现迪内聚高耦合的设计,使代码更安全且具有良好的扩展性。继承是父类产生子类的过程,子类可以使用父类的非私有的属性和方法。多态是一个对象在不同时刻可以表现出不同状态的现象。外加Animal和Cat的例子。这一段时间敲了不少的Java代码,在敲代码的过程中想了无数次的面向对象这几个概念,对他们有了更深的了解,在这

    2022年7月15日
    13
  • php替换字符串中,PHP 替换字符串中的一些字符方法介绍

    php替换字符串中,PHP 替换字符串中的一些字符方法介绍在php中替换字符串我们都会使用到str_replace函数了,此函数还可以使用正则,下面小编来给大家介绍一下替换字符串中的一些字符或替换第一次出现的字符实例。现在有个需求:字符串A与字符串B,字符串B中包含字符串A,利用字符串A将字符串B中的A替换成其他字符串或删除。利用PHP函数,str_ireplace()与str_replace()可以做到。一、str_ireplace(find,r…

    2022年5月10日
    43
  • Unity入门 简单的3D场景制作[通俗易懂]

    Unity入门 简单的3D场景制作[通俗易懂]Unity入门简单的3D场景制作准备1.在左侧层级视图(Hierarchy)右键创建3DObject下的Terrain场景2.选中Terrain层,在右边的Inspector窗口设置场景面积大小为200×2003.选择设置高度点击SetHeight选项,设置完参数点击Flatten按钮,图层会向上移动50个单位,方便我们后面挖湖4.选择RaiseorLowerTerrain选项,默认是…

    2022年6月7日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号