2024.4.18 Python爬虫复习day06 可视化2

day06_数据可视化

Map_地图

基础地图

知识点:

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

基础示例:

# 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')

实战练习:

知识点:

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

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

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

自定义模块:

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

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

# 读取文件中的列表,并且把字符串类型转为列表本身
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代码示例
"""
需求: 已知每个城市的疫情确诊数据(仅用于测试)在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文件内容
[
('张家口市', 499), ('承德市', 455), ('秦皇岛市', 399), ('唐山市', 319),
('保定市', 299), ('沧州市', 388), ('石家庄市', 251), ('衡水市', 199),
('邢台市', 300), ('邯郸市', 200), ('廊坊市', 200)
]
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_折线图

基础折线图

制作折线图步骤:
	1.导包
	2.创建对象
	3.添加数据,设置格式
	4.设置全局选项
	5.渲染页面
# 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文件

['美国', '中国', '日本', '德国', '印度', '法国', '英国', '巴西', '意大利', '加拿大', '韩国', '俄罗斯', '澳大利亚', '西班牙', '墨西哥', '印度尼西亚', '土耳其', '荷兰', '阿根廷', '沙特阿拉伯', '瑞士', '瑞典', '波兰', '中国台湾', '尼日利亚', '比利时', '泰国', '奥地利', '伊朗', '阿闻酋']
['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代码

"""
需求: 已知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_柱状图

基础柱状图

制作柱状图步骤:
	1.导包
	2.创建对象
	3.添加数据,设置格式
	4.设置全局选项
	5.渲染页面
# 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')

反转以及主题设置

# 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数据

知识点:

json简介: json是一个具有特定格式的字符串

导入json包: import json

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

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

示例:

# 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数据

知识点:

json简介: json是一个具有特定格式的字符串

导入json包: import json

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

json文件:

data4.json

{"name": "老王", "age": 16}

data5.txt

[{"name": "老王", "age": 16}, {"name": "老李", "age": 18}]

示例:

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))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/553952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言-输入数,存入数组,将奇数放置数组左侧,将偶数放置数组右侧

一 主要涉及到的知识点: 1.1 for循环 1.2 计算数组的大小int sz sizeof(arr) / sizeof(arr[0]); 1.3 函数的定义使用 1.4 while()循环 二 源代码: //输入一个整数数组,实现一个函数 //来调整该数组中数字的顺序使得数组中所有的奇数位与数组的前半部分, //所有的偶数位于…

STM32应用开发——BH1750光照传感器详解

STM32应用开发——BH1750光照传感器详解 目录 STM32应用开发——BH1750光照传感器详解前言1 硬件介绍1.1 BH1750简介1.2 硬件接线 2 软件编程2.1 软件原理2.1.1 IIC设备地址2.1.2 IIC读写2.1.3 BH1750指令集2.1.4 BH1750工作流程2.1.5 BH1750测量模式 2.2 测试代码2.3 运行测试…

2024基于PHP开发的微信抖音小程序点餐系统开发源代码案例

最近新开发了一套小程序点餐系统,用户点餐之后可以选择堂食或者是外卖到家,这套系统主要功能有,产品展示,支付系统,外卖配送,用户系统,积分系统,商家管理系统,抽奖系统&a…

STM32 CAN过滤器细节

STM32 CAN过滤器细节 简介 每组筛选器包含2个32位的寄存器,分别为CAN_FxR1和CAN_FxR2,它们用来存储要筛选的ID或掩码 四种模式 模式说明32位掩码模式CAN_FxR1存储ID, CAN_FxR2存储哪个位必须要与CAN_FxR1中的ID一致 , 2个寄存器…

具有图形化衬底与空气腔反射镜混合结构的深紫外Micro-LED阵列芯片

具有倾斜侧壁结构的深紫外Micro-LED的侧壁反射率是影响器件光提取效率的重要因素。由于TM模式偏振光在发生全反射时,产生的倏逝波诱导的金属表面等离子激元降低了倾斜侧壁处的集成全向反射镜(ODR)的反射率,从而导致光提取效率降低…

【安全】查杀linux挖矿病毒 kswapd0

中毒现象 高cpu占用,使用top命令查看cpu使用率长时间50%以上,cpu占用异常的进程八成就是挖矿病毒进程 此病毒隐藏了自己,top命令无法查看到挖矿病毒进程,可通过sysdig命令找到隐藏进程 安装sysdig curl -s https://s3.amazonaw…

java大作业(9)--实现银行基本操作(第一遍)

一.题目: 二.代码: 实现代码: import java.util.Date; //银行账户类 class Account{public String accountid;public String name;public double balance;public Date creatTime;public Account(String accountid,String name, double bala…

虚拟天空解决方案,创造出令人惊叹的换天效果

在汽车视频领域,如何打破传统拍摄限制,呈现出更具创意和想象力的画面,成为众多企业和创作者追求的目标。美摄科技作为业界领先的视频技术提供商,凭借其强大的AI技术和三维渲染引擎,推出了全新的虚拟天空解决方案&#…

MediaStream使用webRtc多窗口传递

最近在做音视频通话,有个需求是把当前会话弄到另一个窗口单独展示,但是会话是属于主窗口的,多窗口通信目前不能直接传递对象,所以想着使用webRtc在主窗口和兄弟窗口建立连接,把主窗口建立会话得到的MediaStream传递给兄…

分布式搭载博客网站

一.运行环境: IP主机名系统服务192.168.118.128Server-WebLinuxWeb192.168.118.131Server-NFS-DNSLinuxNFS/DNS 二.基础配置 1. 配置主机名,hosts映射 [rootserver ~]# hostnamectl set-hostname Server-Web [rootserver ~]# hostname Server-Web [r…

大模型LLM架构--Decoder-Only、Encoder-Only、Encoder-Decoder

目录 1 LLM演变进化树 2 每种架构的优缺点 2.1 Decoder-Only 架构 2.2 Encoder-Only 2.3 Encoder-Decoder 参考文献: 1 LLM演变进化树 基于 Transformer 模型以非灰色显示:decoder-only 模型在右边的浅蓝色分支,encoder-only 模型在粉色…

【学习】测试新项目该如何高效的展开测试?需要做哪些规划?

当我们收到测试项目时,如何高效地展开测试是我们作为测试人员所要面临的一大挑战。测试是软件开发过程中不可或缺的一环,它确保了产品的质量,降低了出现问题的风险,提高了用户的满意度。因此,我们需要制定合理的测试计…

操作教程丨MaxKB+Ollama:快速构建基于大语言模型的本地知识库问答系统

2024年4月12日,1Panel开源项目组正式对外介绍了其官方出品的开源子项目——MaxKB(github.com/1Panel-dev/MaxKB)。MaxKB是一款基于LLM(Large Language Model)大语言模型的知识库问答系统。MaxKB的产品命名内涵为“Max …

java对接IPFS系统-以nft.storage为列

引言 之前我们已经说过了、NFT.Storage是一个基于IPFS的分布式存储服务,专门用于存储和管理非同质化代币(NFT)相关的数据和资产。它是由Protocol Labs和Pinata共同推出的服务。今天我们基于nft.storage为列、使用java对接打通这个ipfs分布式存…

成为程序员后的领悟与展望-ApiHug

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 选择一个…

【代码】Python3|Requests 库怎么继承 Selenium 的 Headers (2024,Chrome)

本文使用的版本: Chrome 124Python 12Selenium 4.19.0 版本过旧可能会出现问题,但只要别差异太大,就可以看本文,因为本文对新老版本都有讲解。 文章目录 1 难点解析和具体思路2 注意事项2.1 PDF 资源获取时注意事项2.2 Capabiliti…

关于老iPad 能够重新使用经过的一些列折腾

背景 搞了一台IPad air一代给家里老人看戏曲或者电视用,芯片是A7处理器,目前IOS系统是IOS12,也就是能支持的最后一个版本。并且可能是之前刷机问题,IPad基带丢失,显示无法连接激活服务器,无法进入系统。 本人没有MAC设备,没有相关越狱经验,没有黑苹果经验,一切都是从头…

制冷铜管焊接介绍

铜管是制冷装置的重要原材料,它主要有两种用途:①制作换热器。②制作连接管道和管件。常用的焊料类型有铜磷焊料、银铜焊料、铜锌焊料等。在焊接时要根据管道材料的特点,正确的选择焊料及熟练的操作,以确保焊接的质量。 1.1对同类…

基于springboot实现图书进销存管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现图书进销存管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了图书进销存管理系统的开发全过程。通过分析图书进销存管理系统管理的不足,创建了一个计算机管理图书进销…

QML QtObject轻量级非可视化元素

QtObject 理论1. 父指针形式代指子类2. 自定义组件中定义一些私有属性 理论 QtObject类型是一个非常轻量级且非可视元素,它只包含objectName属性,其本质上是QObject。 用途一般是两个: 父指针形式代指子类;自定义组件中定义一些…
最新文章