上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来!

为了方便看出已完成订单的趋势,又不想想到使用Excel, 想到手动绘制表格填入数据就充满了抵触,哈哈,能用代码完成的事绝不手操,不能愧对python!

先确保python环境和pip已经安装好

这个过程分为3步: 安装 jupyter-notebook  ——>  安装matplotlib  ——> 写代码呗

  1. 为什么用 jupyter-notebook ,jupyter安装方便,功能强大,基于浏览器编辑运行,数据可视化支持友好 ....

    安装: pip install jupyter notebook

     运行:  在cmd 中输入: jupyter-notebook

     你将看到如下信息界面:

      

    浏览器会默认打开127.0.0.1:8888,如果没有,手动复制红框地址在浏览器打开,然后你就可以愉快地使用jupyter了!

    在右上角有个NEW按钮,可以看到jupyter支持创建的类型,python3: 一个交互式的python环境,支持tab 提示补全, Text File:普通文本文件, Folder: 文件夹, Terminal: 比系统cmd更舒服的控制台

    

    还可以用ls ,pwd等linux命令 是不是很强大!

  2.  安装matplotlib, Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

    pip install matplotlib

  3. 如果有log文件内容如下:

    ------------------current time: 2019-09-11 11:33:55, finished order count: 0 --------------------

    ------------------current time: 2019-09-11 11:43:55, finished order count: 63 --------------------

    ------------------current time: 2019-09-11 11:53:55, finished order count: 117 --------------------

    ------------------current time: 2019-09-11 12:03:55, finished order count: 135 --------------------

    ------------------current time: 2019-09-11 12:13:55, finished order count: 185 --------------------

    ------------------current time: 2019-09-11 12:23:55, finished order count: 218 --------------------

    要将时分秒数据作为x轴数据,0,63,117等订单数据作为y轴数据,看代码:

      

# -*- coding=utf-8 -*-
import re
import pandas
from matplotlib import pyplot as plt with open('../log.log','r') as f:
lines = f.readlines() x = []
y = []
for line in lines:
date = re.search(r' (\d+:\d+:\d+)',line).group(1)
x.append(date)
finishOrder = re.search(r'count: (\d+)', line).group(1)
y.append(int(finishOrder)) plt.figure(figsize=(20,10)) #创建绘图对象 指定figure的宽和高,单位为英寸
plt.plot(x,y,"o--",linewidth=1) #在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度)
plt.xticks(rotation=25) # 旋转角度,避免x轴间距不足导致重叠
plt.tick_params(labelsize=14)
for x,y in zip(x,y):
plt.text(x,y + 5,'%.0f' %y,ha = 'center',fontsize = 14) # 使折现节点显示具体的值 , +5 表示节点的值位于节点的上下距离高度
plt.xlabel("时间段",fontproperties="SimSun",fontsize = 18) #X轴标签 fontproperties设置字体,不然会中文乱码
plt.ylabel("已完成订单数",fontproperties="SimSun",fontsize = 18)
plt.title("趋势图",fontproperties="SimSun",color='red',fontsize = 24) #图标题
plt.savefig('趋势图.png') # 保存生成的趋势图到本地 必须写在show前面,不然保存的图片是空白的
plt.show() #显示图

看效果:

  

    

使用 jupyter-notebook + python + matplotlib 进行数据可视化的更多相关文章

  1. python matplotlib(数据可视化)

    吐槽 网上搜了不少matplotlib安装方法(不信,你可以试试.) 我只能说,除了太繁琐,就是没什么用! 如果你是python3.6.5版本 我给你最最最正确的建议: 直接打开cmd,找到pip用命 ...

  2. matplotlib实现数据可视化

    一篇matplotlib库的学习博文.matplotlib对于数据可视化非常重要,它完全封装了MatLab的所有API,在python的环境下和Python的语法一起使用更是相得益彰. 一.库的安装和 ...

  3. python grib气象数据可视化

    基于Python的Grib数据可视化           利用Python语言实现Grib数据可视化主要依靠三个库——pygrib.numpy和matplotlib.pygrib是欧洲中期天气预报中心 ...

  4. TensorFlow Jupyter Notebook 和matplotlib安装配置

    Jupyter Notebook 和matplotlib Jupyter Notebook安装 Python 3 : python3 -m pip install --upgrade pip pyth ...

  5. 基于matplotlib的数据可视化 - 笔记

    1 基本绘图 在plot()函数中只有x,y两个量时. import numpy as np import matplotlib.pyplot as plt # 生成曲线上各个点的x,y坐标,然后用一 ...

  6. python matplotlib plot 数据中的中文无法正常显示的解决办法

    转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...

  7. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  8. python 爬虫与数据可视化--matplotlib模块应用

    一.数据分析的目的(利用大数据量数据分析,帮助人们做出战略决策) 二.什么是matplotlib? matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB ...

  9. 【Matplotlib】数据可视化实例分析

    数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...

随机推荐

  1. 自定义itemClickView

    极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...

  2. LR有的JMeter也有之二“检查点”

    好吧!接着上一篇文章的内容和思路,继续前进. 检查点:简单的来理解一下,上一章讲到,我们对用户名和密码进行了参数化,那么怎样来判断jmeter有没有正确调用test.dat里面的文件呢.当然,我们可以 ...

  3. 如何保证FPGA PCIe唤醒能满足PC的100ms 的时间要求(Autonomous Mode)?

    原创By DeeZeng [ Intel FPGA笔记 ]  PC 需要PCIe设备在 100ms 内启动,这样PC 才能扫描到PCIe 设备.对于 FPGA PCIe 板卡,同样也需要满足这个时间要 ...

  4. 使用python画3D线条

    """用于验证整体趋势正确性""" #!python3 #-*- coding:utf-8 -*- import matplotlib as ...

  5. mongoDB的CRUD的总结

    今天开始接触非关系型数据库的mongoDB,现在将自己做的笔记发出来,供大家参考,也便于自己以后忘记了可以查看. 首先,mongoDB,是一种数据库,但是又区别与mysql,sqlserver.orc ...

  6. MySQL InnoDB Cluster介绍

    目录 一.MySQL InnoDB Cluster介绍 二.环境准备 三.将MGR节点加入MySQL Cluster 四.问题汇总 五.性能测试 六.个人总结 一.MySQL InnoDB Clust ...

  7. 基于.NET Core开发的个人博客发布至CentOS小计

    早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...

  8. DotNetCore 3.0 助力 WPF本地化

    概览 随着我们的应用程序越来越受欢迎,我们的下一步将要开发多语言功能.方便越来越多的国家使用我们中国的应用程序, 基于 WPF 本地化,我们很多时候使用的是系统资源文件,可是动态切换本地化,就比较麻烦 ...

  9. hive explode 行拆列

    创建一张表test_explode,表结构如下 表数据如下: 1.使用explode函数 select explode(friends) as friend from test_explode; 但是 ...

  10. Django对接SQL Server服务

    1.环境描述环境:Win7 + Django2.1.10 + SQL Server 2014 + Python3.6 + PyCharm 2017.2.3 x64 2.安装插件由于Django默认是不 ...