Echarts 大数据可视化实现

2023-10-27

全国空气质量AQI - PM2.5数据可视化源码

(1)编程环境为anaconda–Jupyter,以下源码已划分好,如使用Jupyter环境编写,请按照顺序写在不同代码块中,注意:若将程序写在一个代码块中,将无法运行!
(2)源码代码注释的部分为单步调试代码,想查看单个块执行得到的是什么数据的话,可以微改代码将数据直接print出来。

爬取天气网站数据并保存为.csv表格数据。

import time
import requests
from bs4 import BeautifulSoup
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}#爬虫[Requests设置请求头Headers],伪造浏览器
# 把1转换为01
url= 'http://www.tianqihoubao.com/aqi/aqi_rank.html'
params = {"show_ram":1}
response = requests.get(url,params=params, headers=headers)#访问url

#listData=[]
soup = BeautifulSoup(response.text, 'html.parser')#获取网页源代码
tr = soup.find('table',class_='b').find_all('tr')#.find定位到所需数据位置  .find_all查找所有的tr(表格)
# 去除标签栏
for j in tr[5:]:        #表头为第0列
    td = j.find_all('td')#td表格
    num = td[0].get_text().strip()           #遍历排名
    city = td[1].get_text().strip()  #遍历城市
    AQI = td[2].get_text().strip()            #遍历空气质量指数AQI
    pm = td[3].get_text().strip()       #遍历PM2.5浓度
    AQI_rank = td[4].get_text()                     #遍历空气质量状况
    province = td[5].get_text()                  #遍历省份
    #listData.append([num,city,AQI,pm,AQI_rank,province])
#print (listData)
    with open(r'./big_data.csv', 'a+', encoding='utf-8') as f1:
        f1.write(num + ',' + city + ',' + AQI + ',' + pm + ',' + AQI_rank +',' + province + '\n ')

数据处理,将爬取的数据处理为Echarts图表数据相同的格式。

#数据处理
import pandas as pd
import numpy as np
sj0 = pd.read_csv("./big_data.csv", usecols=[5])  # 省份
sj_0 = sj0.values.tolist()
sj1 = pd.read_csv("./big_data.csv", usecols=[2])  # AQI
sj2 = pd.read_csv("./big_data.csv", usecols=[3])  # PM2.5
sj_1 = sj1.values.tolist()#转换成二维数组
sj_2 = sj2.values.tolist()

i = 0 # 取第一列
sj_1 = [item[i] for item in sj_1]#二维转换成一维数组
sj_2 = [item[i] for item in sj_2]
#print(df_li1)

将AQI - PM2.5数据以折线图形式表示。

#AQI - PM2.5折线图示例
import json
import pyecharts
from pyecharts import Line
attr =sj_0
v1 =sj_1
v2 =sj_2
line =pyecharts.Line("AQI - PM2.5折线图示例", width=800, height=500)
line.add("AQI", attr, v1, mark_point=['average'], is_datazoom_show=True)
line.add("PM2.5", attr, v2, mark_line=['average'], is_smooth=True)
line

在这里插入图片描述

将AQI - PM2.5数据以柱状图形式表示。

#AQI - PM2.5柱状图示例
import json
import pyecharts
from pyecharts import Bar
attr = sj_0
v1=sj_1#AQI
v2=sj_2#pm2.5
bar = Bar('AQI - PM2.5柱状图示例')
bar.add('AQI',attr,v1, mark_point=['max'], legend_text_color='red', is_datazoom_show=True)
bar.add('PM2.5',attr,v2, mark_line=['min'], legend_text_color='blue')
bar

在这里插入图片描述

爬取各个省的AQI,并求平均值,然后保存为.csv表格文件。

#全国空气质量平均分布图
import time
import requests
from bs4 import BeautifulSoup
def Get_Average(list): #计算AQI平均值
    if len(list) == 0:
        return 0
    sum = 0
    for item in list:
        sum += item   
    return sum/len(list)

headers= {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'http://www.tianqi.com/air/guizhou.html'
response = requests.get(url=url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
#把所有省的名字抓下来
province_all=soup.find('div',class_='air_citybox1')
provinces_all=province_all.find_all('a')

provinces_name=[]
province_list=[]
AQI_list=[]
listData=[]

for pn in provinces_all:
    provinces_name.append(pn['href'])
    province_list.append(pn.get_text().strip())
provinces_name.pop(27)#天津的爬不了,格式不一样
provinces_name.pop(24)#上海的爬不了,格式不一样
provinces_name.pop(3)#重庆的爬不了,格式不一样
provinces_name.pop(2)#北京的爬不了,格式不一样
province_list.pop(27)
province_list.pop(24)
province_list.pop(3)
province_list.pop(2)

#然后把各省对应的地址接到url后面
for tail in provinces_name:
    url = 'http://www.tianqi.com/'+tail
    response = requests.get(url=url, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    air_tab = soup.find('table', class_='air_tab')
    tr = air_tab.find_all('tr')
    AQI_temp1=[]
    # 去除标签栏
    ittr = iter(tr)#迭代器,去掉列名
    next(ittr)#迭代器,去掉列名
    for j in ittr:
        td=j.find_all('td')
        dat0 = td[0].get_text().strip()
        dat1 = td[1].get_text().strip()
        dat2 = td[2].get_text().strip()
        AQI_temp1.append(dat2)
        dat3 = td[3].get_text().strip()
        with open(r'./guizhou.csv', 'a+', encoding='utf-8') as f:
            f.write(dat0 + ',' + dat1 + ',' + dat2 + ','+ dat3 + '\n ')
    AQI_temp1=[int(i) for i in AQI_temp1]
    AQI_list.append(Get_Average(AQI_temp1))

画中国版图和柱状图

#画中国版图,全国空气质量平均分布图
from pyecharts import Map, Geo
import pandas as pd
map = Map("",width=300, height=300)
map.add("", province_list, AQI_list, maptype='china', is_visualmap=True,visual_text_color='#000')

#画柱状图
import json
import pyecharts
from pyecharts import *
attr = province_list#全国各省
v1=AQI_list#全国各省部平均AQI
bar = Bar('全国空气质量平均AQI(仅包含部分城市)',width=300, height=1000)
bar.add('平均AQI',attr,v1)
bar
#grid.add(bar, grid_opts=opts.GridOpts(pos_left="55%"))
#grid.add(map, grid_opts=opts.GridOpts(pos_right="55%"))
    
grid = Grid()
grid.add(bar, grid_bottom='50%')
grid.add(map, grid_top='50%')
grid

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Echarts 大数据可视化实现 的相关文章

  • 如何学习Redis

    掌握数据结构和缓存的基本使用方法 要想会用一种系统 我们首先要会一些基本操作 我们平时在开发业务系统时 或多或少地会把 Redis 当作数据库或缓存使用 Redis 也提供了非常丰富的数据结构 这也给我们的开发提供了极大的便利 所以 要想快
  • HTML表单标签及其具体使用

    HTML表单标签 文章目录 HTML表单标签 一 form标签 解析 具体使用 二 input标签 解析 具体使用 运行结果 三 textarea标签 解析 包含属性 具体使用 运行结果 四 select标签 解析 包含属性 五 optio
  • 基于JSP的毕业设计选题系统的设计与实现(源代码+论文)

    随着全球信息化技术的兴起 特别是Internet的日益普及 我国各大中专院校都建立了自己的校园网 毕业生以班级为单位的原始手工报送的选题方式已经不能适应时代发展的需求 所以基与互联网的毕业设计选题系统也就孕育而生了 毕业设计选题系统就是能够

随机推荐

  • 安全防御——IDS(入侵检测系统)

    安全防御 IDS 入侵检测系统 IDS介绍 为什么需要IDS IDS的工作原理 IDS的工作过程 第一步 信息收集 第二步 数据分析 IDS的主要检测方法 1 模式匹配 误用检测 2 统计分析 异常检测 3 完整性分析 异常检测 4 融合使
  • Docker镜像保存为文件及从本地文件导入镜像的方法

    1 概述 我们制作好镜像后 有时需要将镜像复制到另一台服务器使用 能达到以上目的有两种方式 一种是上传镜像到仓库中 本地或公共仓库 但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的 所以如果使用仓库的方式 只能自己搭建私有仓库
  • Linux:监控GPU状态【nvidia-smi】【watch -n 1 nvidia-smi】【pip install gpustat;gpustat -i】

    一台服务器毕竟很多人都在用 这个时候查看GPU状态显得尤为重要 查看剩余显存大小 以便自己能否使用这块卡 后来查找发现有2种方式 最开始我用的就是第一种 但是显然不是很好用 最后发现gpustat超级好用 下面分别介绍两种用法 一 nvid
  • HAL-STM32-USB内部Flash虚拟U盘更新程序

    1 IAP部分 添加fat32文件 修改Flash擦除代码 F401ccu6按扇区删除 F103按页删除 static bool fat32 write firmware const uint8 t b uint32 t addr bool
  • 如何练成大力金刚指:IKBC - C104 白色黑轴机械键盘 体验测评

    0 写在前面的话 首先 感谢张大妈对我的信任 让我参与这次IKBC C104键盘的众测 作为一个码农 每天至少一半以上的时间在使用键盘 一把趁手的键盘 就像一个武林高手手中的绝世神兵 摧枯拉朽 无往而不利 所以 我有很多把绝世神兵 然并卵
  • python运算符——比较运算符

    在编程的世界里 是一个特殊的运算符 是为赋值运算符 是为比较运算符 a b 10 20 print a gt b吗 a gt b False print a
  • 4大主流小程序平台介绍及其优缺点对比

    文章目录 人工智能福利文章 微信小程序 优点 缺点 支付宝小程序 优点 缺点 百度小程序 优点 缺点 字节小程序 优点 缺点 总结 脑筋急转弯小程序抢先体验 程序员专属工具箱 请添加图片描述 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主
  • 聊聊自动化测试框架

    无论是在自动化测试实践 还是日常交流中 经常听到一个词 框架 之前学习自动化测试的过程中 一直对 框架 这个词知其然不知其所以然 最近看了很多自动化相关的资料 加上自己的一些实践 算是对 框架 有了一些理解 这篇博客 就聊聊自动化框架的一些
  • DSPTMS320F28335笔记——ADC的概念学习

    注 本文章只记录自己学习 参考多个博主和学习视频 最后附上参考的出处 本人能力有限 如果发现错误 还请多多指教 一 ADC转换步骤 A D转换器 ADC 将模拟量转换为数字量通常要经过4个步骤 1 采样 将一个时间上连续变化的模拟量转化为时
  • jupyter notebook 主题

    一 安装jupyter 主题 pip install upgrade jupyterthemes 二 jt l jt l 现在可以选择一个主题名执行以下代码换皮肤了 例如 jt t chesterish T N 这就表示选择了chester
  • PCA(主成分分析)降维可视化Matlab实现

    实现一个动态展示二维到一维的实例 以及通过使用PCA对其进行简单降维 1 二维数据降维动态演示 下图通过使用投影关系将二维点集映射到一维直线上 直观上展示了二维到一维的降维和数据的映射关系 下图使用含有噪声圆的降维 可用于讲解kernel
  • 这二维码也太美了吧!利用AI绘画[Stable Diffusion的 ControlNet]生成爆火的艺术风格二维码

    文章目录 引子 爆火的艺术二维码 这种艺术二维码是如何制作出来的 ControlNet 介绍 ControlNet的限制条件 边缘检测示例 人体姿态检测示例 使用Canny边缘检测和Openpose有什么区别 安装稳定扩散控制网Contro
  • 服务器在使用过程中如何保护数据

    在租用服务器搭建网站运营的时候 除了保证网站的正常运营之外 对于网站数据安全的保护也不容忽视 那么租用服务器的 时候如何做好防御呢 租用服务器建站的时候如何做好数据库的安全工作呢 数据库的备份工作 对于数据库备份主要分为以下几种 完全备份
  • 【GAN 01】初识GAN

    本文是对http www seeprettyface com research notes html的学习笔记 评价指标 Inception Score评价图片质量 真实图片是233分 越高越好 FID反应生成图片的多样性 越低越好 一 初
  • 【第36篇】SwinIR(超分)

    文章目录 摘要 一 简介 二 相关工作 2 1 图像恢复 2 2 视觉转换器 三 方法 3 1 网络架构 3 2 剩余旋转变压器块 四 实验 4 1 实验设置 4 2 消融研究与讨论 4 3 图像 SR 的结果 4 4 JPEG 压缩伪影减
  • spring mvc:注解@ModelAttribute妙用

    在Spring mvc中 注解 ModelAttribute是一个非常常用的注解 其功能主要在两方面 运用在参数上 会将客户端传递过来的参数按名称注入到指定对象中 并且会将这个对象自动加入ModelMap中 便于View层使用 br gt
  • C语言 - AES软件加解密算法

    概述 AES RIJNDAEL算法是一个数据块长度盒密钥长度都可变的分组加密算法 其数据块长度和密钥长度都可独立地选定为大于等于128位且小于等于256位的32位任意倍数 深入学习请参考 密码学 书籍 谢谢各位参阅 验证环境 STM32F4
  • matlab怎么看输出电压纹波,Boost变换器的能量传输模式和输出纹波电压分析.pdf

    第26卷第5期 中国电机工程学报 01 26No 5Mar 2006 2006年3月 oftheCSEE 2006Chin Soc for Proceedings Elec Eng 文章编号 0258 8013 2006 05 0119 0
  • 在 Windows 下安装 COCO API(pycocotools)

    本内容将介绍在 Windows 下安装 COCO API pycocotools 本来 COCO 对 Windows 是不支持的 不过为了支持 Windows 有人对 COCO 做了一些修改 下面是 COCO 在 GitHub 上源码地址信
  • Echarts 大数据可视化实现

    全国空气质量AQI PM2 5数据可视化源码 1 编程环境为anaconda Jupyter 以下源码已划分好 如使用Jupyter环境编写 请按照顺序写在不同代码块中 注意 若将程序写在一个代码块中 将无法运行 2 源码代码注释的部分为单