大家好,又见面了,我是你们的朋友全栈君。
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,遇到了各种问题,慢慢地一个个解决,到达自己满意的效果。
欢迎大佬批评指正