首页 > 其他分享 >14_数据可视化入门

14_数据可视化入门

时间:2022-10-17 18:25:32浏览次数:56  
标签:logging 14 html 可视化 等级 import 日志 opts 入门

数据可视化和程序日志

一.数据可视化

1.数据可视化简介

echarts简介: 是百度开源的数据可视化工具

echarts特点: 良好的交互性, 精巧的图表设计

pyecharts模块: echarts的python版本

2.准备web服务器

# 1.导包
from fastapi import FastAPI
from fastapi import Response
import uvicorn
# 2.创建fastapi对象
app = FastAPI()
# 3.处理web数据(请求和响应)
@app.get('/') # 自动跳转首页 http://127.0.0.1:8081/
def show():
    with open('source/html/index.html','rb') as f:
        body = f.read()
    return Response(content=body)

@app.get('/{html_path}') # 跳转指定页面
def show(html_path):
    with open(f'source/html/{html_path}','rb') as f:
        body = f.read()
    return Response(content=body)

@app.get('/images/{img_path}') # 跳转指定图片
def show(img_path):
    with open(f'source/images/{img_path}','rb') as f:
        body = f.read()
    return Response(content=body)

# 4.启动服务器
uvicorn.run(app,host='127.0.0.1',port=8081)

3.爬取gdp数据

import re
import requests
# 1.准备有效的url
url = 'http://127.0.0.1:8081/gdp.html'
# 2.发送请求,接收响应对象
res = requests.get(url)
# 3.处理响应数据
html_str = res.content.decode()
gdp_data = re.findall('<a href=""><font>(.*?)</font></a>.*?¥(.*?)亿元',html_str,re.S)
print(gdp_data)
# 4.数据可视化

4.制作饼图

知识点:

制作饼图步骤:
1.导包
2.创建饼图对象
3.给饼图设置宽高
4.给饼图添加数据
5.生成饼图页面

默认生成页面:

import re
import requests
from pyecharts.charts import Pie
from pyecharts import options as opts
# 1.准备有效的url
url = 'http://127.0.0.1:8081/gdp.html'
# 2.发送请求,接收响应对象
res = requests.get(url)
# 3.处理响应数据
html_str = res.content.decode()
gdp_data = re.findall('<a href=""><font>(.*?)</font></a>.*?¥(.*?)亿元',html_str,re.S)
print(gdp_data[:10])
# 4.数据可视化
# 4.1 创建饼图对象  参数名: init_opts  参数值: 配置选项设置宽和高
pie = Pie(init_opts=opts.InitOpts(width='1200px',height='600px'))
# 4.2 给饼图对象添加数据
# add函数:  参数1: 数据名   参数2: 数据   参数3: 数据显示固定百分比格式
pie.add(
    'gdp数据',
    gdp_data[:10],
    label_opts=opts.LabelOpts(formatter='{b}:{d}%')
)
# 4.3 给饼图对象添加标题
# set_global_opts函数: 参数名: title_opts   参数值: 配置选项设置大标题和子标题
pie.set_global_opts(title_opts=opts.TitleOpts(title='2022年GDP排名',subtitle='斌子制作'))
# 4.4 生成饼图页面   注意: 没有指定文件名,默认生成文件render.html
pie.render()

指定生成页面:

import re
import requests
# 1.导包
from pyecharts.charts import Pie
from pyecharts import options as opts

# 定义爬取gdp数据的函数
def get_gdp():
    # 1.准备有效的url
    url = 'http://127.0.0.1:8081/gdp.html'
    # 2.发送请求,接收响应对象
    res = requests.get(url)
    # 3.处理响应数据
    html_str = res.content.decode()
    gdp_data = re.findall('<a href=""><font>(.*?)</font></a>.*?¥(.*?)亿元', html_str, re.S)
    return  gdp_data

# 2. 创建饼图对象  参数名: init_opts  参数值: 配置选项设置宽和高
pie = Pie(init_opts=opts.InitOpts(width='1200px',height='600px'))
# 3. 给饼图对象添加数据
# 调用获取gdp数据的函数
gdp_data = get_gdp()
# add函数:  参数1: 数据名   参数2: 数据   参数3: 数据显示固定百分比格式
pie.add(
    'gdp数据',
    gdp_data[:10],
    label_opts=opts.LabelOpts(formatter='{b}:{d}%')
)
# 4. 给饼图对象设置标题
# set_global_opts函数: 参数名: title_opts   参数值: 配置选项设置大标题和子标题
pie.set_global_opts(title_opts=opts.TitleOpts(title='2022年GDP排名',subtitle='斌子制作'))
# 5. 生成饼图页面   注意: 没有指定文件名,默认生成文件render.html
pie.render('myrender.html')

二.程序日志

1.日志简介

知识点:

程序日志作用:   记录程序在执行中的一些关键信息

程序日志好处:   1.方便了解程序运行情况  2.方便检查bug  3.方便了解用户喜好等

python中日志:  logging模块

日志等级: 
调试:DEBUG 
信息:INFO
警告:WARNING
错误:ERROR
危险:CRITICAL

优先级: DEBUG<INFO<WARNING<ERROR<CRITICAL

默认等级: WARNING

示例:

import logging
logging.debug('调试等级信息') # 控制台默认没有打印
logging.info('信息等级信息') # 控制台默认没有打印
# 默认等级: WARNNIG  WARNNIG和WARNNIG以上的日志信息会打印到控制台
logging.warning('警告等级信息')
logging.error('错误等级信息')
logging.critical('危险等级信息')

2.设置日志等级

知识点:

logging.basicConfig(
    level=logging.等级名
)

示例:

import logging
# 设置日志等级
logging.basicConfig(
    level=logging.DEBUG
)
# 由于设置了日志等级为DEBUG,所以所有信息都打印到控制台了
logging.debug('调试等级信息')
logging.info('信息等级信息')

logging.warning('警告等级信息')
logging.error('错误等级信息')
logging.critical('危险等级信息')

3.格式化输出日志

知识点:

格式化输出日志:
format 表示日志的输出格式, 参数说明:
%(levelname)s: 打印日志级别名称
%(filename)s: 打印当前执行程序名
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(message)s: 打印日志信息

使用格式:
logging.basicConfig(
    format='%(filename)s的%(lineno)d行,%(levelname)s:%(message)s,%(asctime)s'
)

示例:

import logging
# 设置日志等级,格式化
logging.basicConfig(
    level=logging.DEBUG,
    format='%(filename)s,%(lineno)d,%(levelname)s,%(message)s,%(asctime)s'
)
# 由于设置了日志等级为DEBUG,所以所有信息都打印到控制台了
logging.debug('调试等级信息')
logging.info('信息等级信息')

logging.warning('警告等级信息')
logging.error('错误等级信息')
logging.critical('危险等级信息')

4.保存日志到本地

知识点:

日志保存到本地: 默认是a模式追加,想覆盖改成w模式
使用格式:
logging.basicConfig(
    filename='日志名',
    filemode='模式'
)

示例:

import logging
# 设置日志等级,格式化,保存到本地
logging.basicConfig(
    level=logging.DEBUG,
    format='%(filename)s的%(lineno)d行,%(levelname)s:%(message)s,%(asctime)s ',
    filename='log.txt',
    filemode='w'
)
# 由于设置了日志等级为DEBUG,所以所有信息都打印到控制台了
logging.debug('调试等级信息')
logging.info('信息等级信息')

logging.warning('警告等级信息')
logging.error('错误等级信息')
logging.critical('危险等级信息')

5.日志版本的web服务器

示例:

# 1.导包
import logging

from fastapi import FastAPI
from fastapi import Response
import uvicorn
# 5.设置日志等级,格式化,保存到本地
logging.basicConfig(
    level=logging.DEBUG,
    format='%(filename)s的%(lineno)d行,%(levelname)s:%(message)s,%(asctime)s ',
    filename='web服务器日志.txt',
    filemode='w'
)

# 2.创建fastapi对象
app = FastAPI()
# 3.处理web数据(请求和响应)
@app.get('/') # 自动跳转首页 http://127.0.0.1:8081/
def show():
    logging.info('用户访问了首页')
    with open('source/html/index.html','rb') as f:
        body = f.read()
    return Response(content=body)

@app.get('/{html_path}') # 跳转指定页面
def show(html_path):
    logging.info(f'用户访问了{html_path}页面')
    with open(f'source/html/{html_path}','rb') as f:
        body = f.read()
    return Response(content=body)

@app.get('/images/{img_path}') # 跳转指定图片
def show(img_path):
    logging.info(f'用户访问了{img_path}图片')
    with open(f'source/images/{img_path}','rb') as f:
        body = f.read()
    return Response(content=body)

# 4.启动服务器
uvicorn.run(app,host='127.0.0.1',port=8089)

结果:

自动生成web服务器日志.txt

proactor_events.py的623行,DEBUG:Using proactor: IocpProactor,2022-07-23 12:18:20,972 
server.py的75行,INFO:Started server process [2656],2022-07-23 12:18:21,005 
on.py的45行,INFO:Waiting for application startup.,2022-07-23 12:18:21,005 
on.py的59行,INFO:Application startup complete.,2022-07-23 12:18:21,006 
server.py的206行,INFO:Uvicorn running on http://127.0.0.1:8089 (Press CTRL+C to quit),2022-07-23 12:18:21,008 
09_日志版本的web服务器.py的20行,INFO:用户访问了首页,2022-07-23 12:18:25,714 
09_日志版本的web服务器.py的34行,INFO:用户访问了0.jpg图片,2022-07-23 12:18:25,769 
09_日志版本的web服务器.py的34行,INFO:用户访问了1.jpg图片,2022-07-23 12:18:25,772 
09_日志版本的web服务器.py的34行,INFO:用户访问了3.jpg图片,2022-07-23 12:18:25,778 
09_日志版本的web服务器.py的34行,INFO:用户访问了4.jpg图片,2022-07-23 12:18:25,792 
09_日志版本的web服务器.py的34行,INFO:用户访问了2.jpg图片,2022-07-23 12:18:25,792 
09_日志版本的web服务器.py的34行,INFO:用户访问了5.jpg图片,2022-07-23 12:18:25,795 
09_日志版本的web服务器.py的34行,INFO:用户访问了6.jpg图片,2022-07-23 12:18:25,879 
server.py的252行,INFO:Shutting down,2022-07-23 12:18:38,473 
on.py的64行,INFO:Waiting for application shutdown.,2022-07-23 12:18:38,582 
on.py的75行,INFO:Application shutdown complete.,2022-07-23 12:18:38,583 
server.py的85行,INFO:Finished server process [2656],2022-07-23 12:18:38,583 

三.数据埋点(了解这个概念即可)

网络爬虫: 从别人产品中采集数据

数据埋点: 从自己的产品中采集用户数据

什么是数据埋点?

数据埋点就是数据采集的一种方式,根据特定业务场景,采集用户的喜好等信息

举例:

推荐功能, 关键字搜索,点赞,转发,关注

数据埋点方式:

代码埋点: 通过代码记录用户的行为,方便对用户进行分析(开发人员协助)

可视化埋点: 通过第三方工具,配置和记录用户的部分行为数据(业务人员自己处理)

无埋点(全埋点): 通过第三方工具,配置和记录用户的全部行为数据(业务人员自己处理)

标签:logging,14,html,可视化,等级,import,日志,opts,入门
From: https://www.cnblogs.com/nanguyhz/p/16800135.html

相关文章

  • 11_正则表达式入门
    1.正则表达式入门正则表达式:regularexpression1.正则表达式概念:记录文本规则的代码(符号)2.正则表达式作用:匹配或者查找符合某些规则的字符串3.python中......
  • LeetCode 144 94 145 关于前中后序遍历二叉树的思考(包含迭代法)
    用系统堆栈实现(递归)很容易实现:前序:do(),递归左儿子,递归右儿子中序:递归左儿子,do(),递归右儿子后序:递归左儿子,递归右儿子,do()用自定义栈实现(迭代法)首先首......
  • Python入门篇--变量与数据类型
    目录​​......
  • 图扑智慧城市 | 搭建政务民生可视化管理系统
    前言《“十四五”新型城镇化实施方案》提出围绕提升城市治理能力智慧化水平提高数字政府服务能力。推行城市数据一网通用、城市运行一网统管、政务服务一网通办、公共服务......
  • 【Python】pyqt6入门到入土系列,非常详细...
    最近真的是运气不好,国庆前一天,隔壁小区有人中招了,结果国庆出不了门,好不容易国庆结束了,准备上班,结果小区又有个叼毛中招了,搞得我直接国庆放了半个月,还只能在家过,没事干只能......
  • MySQL的一些操作(用的并不是SQL语句,可视化界面)
    可视化界面的一些基本操作mysqlworkbench入门记(一)-介绍及简单使用_chunjunluo的博客-CSDN博客_mysqlworkbench介绍下面这个更详细一点 MySQL-Workbench数据库基本操......
  • Selenium4Web自动化1-自动化入门与环境搭建
    一、自动化测试基础1分层自动化测试  分层的自动化测试:从黑盒(UI)单层到黑盒和白盒多层的自动化测试,即从全面黑盒自动化测试到对系统的不同层次进行的自动化测试。1......
  • C语言零基础入门—函数-习题
    C语言零基础入门—函数-习题本节课的任务是:完成5道习题。下边的题目,都需要使用函数的知识来求解(也就是编写自定义函数求解)01-二元一次函数求解求方程​​ax^2+bx+c=......
  • [IOI2014]friend 朋友
    题目传送门似乎是我的第一篇IOI题解?思路虽然说是IOI题,但是其实并没有那么难。这个题目描述比较杂乱,简单的描述就是:给你一些关系,你需要选出一些点,使这些点的权值和......
  • C++20实践入门 第6版 电子书 pdf
    《beginningc++20:fromnovicetoprofessionalsixthedition》 关注公众号:红宸笑。回复:电子书即可 ......