2024.4.18 Python爬虫复习day06 可视化2

day06_数据可视化

Map_地图

基础地图

知识点:

properties 复制代码
制作地图步骤:
	1.导包
	2.创建对象
	3.添加数据,设置格式
	4.设置全局选项
	5.渲染页面

基础示例:

python 复制代码
# 1.导包
from pyecharts.charts import Map
import pyecharts.options as opts

# 2.创建对象
map = Map()
# 3.给对象添加数据,设置格式
# 先准备数据
data = [('北京市', 499), ('上海市', 399), ('广东省', 299), ('台湾省', 199)]
# 再添加数据
map.add('疫情数据', data, 'china')
# 4.设置标题
map.set_global_opts(title_opts=opts.TitleOpts(title='全国疫情确诊数据', subtitle='测试数据'))
# 5.渲染页面
map.render('my_map.html')

实战练习:

知识点:

properties 复制代码
使用视觉映射: visualmap_opts=opts.VisualMapOpts(max_=500, is_piecewise=True)     注意: is_piecewise开启分段

自定义模块: 自己可以创建一个满足标识符规则的模块,模块中定义具有特定功能的函数

导入模块: 在其他py文件中可以导入模块
	方式1: import 模块名               注意: 此种方式使用函数的时候,需要: 模块名.函数名()
	方式2: from 模块名 import 函数名    注意: 此种方式可以直接使用函数名()

自定义模块:

注意: 模块的名称不要以数字开头,不要是关键字,一般都是小写,可以字母数字下划线汉字组成(不建议)

举例: 当前模块定义名称为: 文件操作

python 复制代码
# 读取文件中的列表,并且把字符串类型转为列表本身
def read_file(file_name, file_mode='r', encod='utf8'):
    with open(file_name, file_mode, encoding=encod) as f:
        str_data = f.read()
        list_data = eval(str_data)
        return list_data


# 写列表数据到文件中
def write_file(file_name, data: list, file_mode, encod='utf8'):
    with open(file_name, file_mode, encoding=encod) as f:
        f.write(str(data))

制作中国地图

data1.txt文件内容
[
('北京市', 499), ('上海市', 455), ('广东省', 399), ('台湾省', 319),
('新疆维吾尔自治区', 299), ('西藏自治区', 388), ('青海省', 251), ('四川省', 199),
('内蒙古自治区', 300), ('黑龙江省', 200), ('辽宁省', 51), ('山东省', 99),
('山西省', 500), ('河南省', 400), ('湖北省', 251), ('湖南省', 199)
]
python代码示例
python 复制代码
"""
需求: 已知每个城市的疫情确诊数据(仅用于测试)在data1.txt文件中,要求制作地图展示
"""
# 1.导包
from pyecharts.charts import Map
import pyecharts.options as opts
import 文件操作
# 2.创建对象
map = Map(init_opts=opts.InitOpts(width='1200px', height='600px'))
# 3.给对象添加数据,设置格式
# 先读取数据
list_data = 文件操作.read_file('data1.txt')
# 再添加数据
map.add('疫情数据', list_data, 'china')
# 4.设置标题
map.set_global_opts(
    title_opts=opts.TitleOpts(title='全国疫情确诊数据', subtitle='测试数据'),
    visualmap_opts=opts.VisualMapOpts(max_=500, is_piecewise=True)
)
# 5.渲染页面
map.render('my_china_map.html')

制作区域地图

data2.txt文件内容
python 复制代码
[
('张家口市', 499), ('承德市', 455), ('秦皇岛市', 399), ('唐山市', 319),
('保定市', 299), ('沧州市', 388), ('石家庄市', 251), ('衡水市', 199),
('邢台市', 300), ('邯郸市', 200), ('廊坊市', 200)
]
python代码示例
python 复制代码
"""
需求: 已知每个城市的疫情确诊数据(仅用于测试)在data2.txt文件中,要求制作地图展示
"""
# 1.导包
from pyecharts.charts import Map
import pyecharts.options as opts
from 文件操作 import read_file
# 2.创建对象
map = Map(init_opts=opts.InitOpts(width='1200px', height='600px'))
# 3.给对象添加数据,设置格式
# 先读取数据
list_data = read_file('data2.txt')
# 再添加数据
map.add('疫情数据', list_data, '河北')
# 4.设置标题
map.set_global_opts(
    title_opts=opts.TitleOpts(title='河北疫情确诊数据', subtitle='测试数据'),
    visualmap_opts=opts.VisualMapOpts(max_=500, is_piecewise=True)
)
# 5.渲染页面
map.render('my_hebei_map.html')

Line_折线图

基础折线图

properties 复制代码
制作折线图步骤:
	1.导包
	2.创建对象
	3.添加数据,设置格式
	4.设置全局选项
	5.渲染页面
python 复制代码
# 1.导包
from pyecharts.charts import Line
import pyecharts.options as opts

# 2.创建对象
line = Line(init_opts=opts.InitOpts(width='1500px', height='800px'))
# 3.添加数据(x和y轴)
line.add_xaxis(['中国', '俄罗斯', '美国', '以色列', '巴勒斯坦'])
line.add_yaxis('测试数据', [100, 80, 70, 55, 10])
# 4.设置全局选项
line.set_global_opts(
    title_opts=opts.TitleOpts(title='各国数据折线图')
)
# 5.渲染
line.render('my_line.html')

实战练习:

data3.txt文件

txt 复制代码
['美国', '中国', '日本', '德国', '印度', '法国', '英国', '巴西', '意大利', '加拿大', '韩国', '俄罗斯', '澳大利亚', '西班牙', '墨西哥', '印度尼西亚', '土耳其', '荷兰', '阿根廷', '沙特阿拉伯', '瑞士', '瑞典', '波兰', '中国台湾', '尼日利亚', '比利时', '泰国', '奥地利', '伊朗', '阿闻酋']
['1422196.083', '1012428.039', '343713.027', '274194.69', '209939.037', '193665.99', '182526.729', '156491.937', '140629.02', '124157.418', '113141.196', '107592.723', '106206.744', '99838.011', '90679.092', '84033.684', '66331.041', '61970.9034', '49807.7496', '49540.449', '48807.5532', '42374.892', '41194.3686', '40703.5146', '38333.5491', '37004.2722', '34316.0979', '31036.6854', '29662.5546', '29029.0665']

python代码

python 复制代码
"""
需求: 已知web服务器gdp.html页面中存储的每个国家名称以及对应的gdp数据
要求爬取数据(之前练习过,此处直接复制之前代码即可),制作折线图
"""
# 获取之前的爬取的数据
with open('data3.txt', 'r', encoding='utf8') as f:
    big_str_data = f.readlines()
    country_list_data = eval(big_str_data[0])
    gdp_list_data = eval(big_str_data[1])
# 制作折线图
# 1.导包
from pyecharts.charts import Line
import pyecharts.options as opts
# 2.创建对象
line = Line(init_opts=opts.InitOpts(width='2000px',height='800px'))
# 3.添加数据(x,y轴分别添加)
line.add_xaxis(country_list_data[:10])
line.add_yaxis('gdp数据',gdp_list_data[:10])
# 4.设置全局选项
line.set_global_opts(
    title_opts=opts.TitleOpts(title='2023各个国家GDP数据折线图')
)
# 5.渲染页面
line.render('my_gdp_line.html')

Bar_柱状图

基础柱状图

properties 复制代码
制作柱状图步骤:
	1.导包
	2.创建对象
	3.添加数据,设置格式
	4.设置全局选项
	5.渲染页面
python 复制代码
# 1.导包
from pyecharts.charts import Bar
import pyecharts.options as opts
# 2.创建对象
bar = Bar(init_opts=opts.InitOpts(width='1800px',height='800px'))
# 3.添加数据(x轴y轴)
bar.add_xaxis(['中国', '俄罗斯', '美国', '以色列', '巴勒斯坦'])
bar.add_yaxis('测试数据', [100, 80, 70, 55, 10])
# 4.设置全局选项
bar.set_global_opts(
    title_opts=opts.TitleOpts(title='各个国家数据对比柱状图')
)
# 5.渲染页面
bar.render('my_bar.html')

反转以及主题设置

python 复制代码
# 1.导包
from pyecharts.charts import Bar
import pyecharts.options as opts
from pyecharts.globals import ThemeType

# 2.创建对象

bar = Bar(init_opts=opts.InitOpts(width='1800px', height='800px', theme=ThemeType.SHINE))
# 3.添加数据(x轴y轴)
bar.add_xaxis(['中国', '俄罗斯', '美国', '以色列', '巴勒斯坦'])
bar.add_yaxis('测试数据1', [10, 80, 70, 55, 10], label_opts=opts.LabelOpts(position="right"))
bar.add_yaxis('测试数据2', [200, 60, 170, 155, 30], label_opts=opts.LabelOpts(position="right"))
bar.add_yaxis('测试数据3', [100, 160, 270, 80, 50], label_opts=opts.LabelOpts(position="right"))
# 4.设置全局选项
bar.set_global_opts(
    title_opts=opts.TitleOpts(title='各个国家数据对比柱状图')
)
# 反转xy轴
bar.reversal_axis()
# 5.渲染页面
bar.render('my_bar.html')

Json数据

python数据转为json数据

知识点:

properties 复制代码
json简介: json是一个具有特定格式的字符串

导入json包: import json

python数据转为json数据: 变量接收json数据 =  json.dumps(python数据,ensure_ascii=False)

注意: ensure_ascii=False解决中文编码问题

示例:

python 复制代码
# 1.导包
import json

# 2.使用
# 定义字典
dict1 = {'name': '老王', 'age': 16}
print(dict1, type(dict1))
# python数据转为json数据
json1 = json.dumps(dict1, ensure_ascii=False)
print(json1, type(json1))
# 定义列表嵌套字典
list1 = [{'name': '老王', 'age': 16}, {'name': '老李', 'age': 18}]
print(list1, type(list1))
# python数据转为json数据
json2 = json.dumps(list1, ensure_ascii=False)
print(json2, type(json2))

json数据转为python数据

知识点:

properties 复制代码
json简介: json是一个具有特定格式的字符串

导入json包: import json

json数据转为python数据: 变量接收python数据 = json.loads(json数据)

json文件:

data4.json

json 复制代码
{"name": "老王", "age": 16}

data5.txt

json 复制代码
[{"name": "老王", "age": 16}, {"name": "老李", "age": 18}]

示例:

python 复制代码
import json

# 读取json文件
# 读取的是类似字典格式的,所以转换后就是字典
with open('data4.json', 'r', encoding='utf8') as f:
    json1 = f.read()
    print(json1, type(json1))
    # json数据转为python数据
    dict1 = json.loads(json1)
    print(dict1, type(dict1))

# 读取的是类似列表套字典格式的,所以转换后就是列表
with open('data5.json', 'r', encoding='utf8') as f:
    json2 = f.read()
    print(json2, type(json2))
    # json数据转为python数据
    list1 = json.loads(json2)
    print(list1, type(list1))
相关推荐
一个不秃头的 程序员9 分钟前
代码加入SFTP JAVA ---(小白篇3)
java·python·github
qq_5895681012 分钟前
node.js web框架koa的使用
笔记·信息可视化·echarts
susu108301891114 分钟前
python实现根据搜索关键词爬取某宝商品信息
爬虫·python
c无序16 分钟前
【数据可视化复习方向】
信息可视化
喜欢猪猪40 分钟前
Java技术专家视角解读:SQL优化与批处理在大数据处理中的应用及原理
android·python·adb
海绵波波10742 分钟前
flask后端开发(1):第一个Flask项目
后端·python·flask
林的快手1 小时前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode
从以前1 小时前
准备考试:解决大学入学考试问题
数据结构·python·算法
Ven%1 小时前
如何修改pip全局缓存位置和全局安装包存放路径
人工智能·python·深度学习·缓存·自然语言处理·pip
枫欢1 小时前
将现有环境192.168.1.100中的svn迁移至新服务器192.168.1.4;
服务器·python·svn