全国24小时降水量pyecharts可视化分析

全国24小时降水量pyecharts可视化分析

分享一个小案例,爬虫抓取天气预报网站的降水量数据,并利用pyecharts库进行可视化生成动态的热力图。数据获取网站如下所示。

http://www.nmc.cn/publish/observations/24hour-precipitation.html

关键词:爬虫、动态网页、pyecharts可视化、降水量

全国24小时降水量pyecharts可视化分析_第1张图片
全国24小时降水量pyecharts可视化分析_第2张图片

一、导入相关库

import requests
import json
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Timeline
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import GeoType

二、主要代码

如需要生成不同日期的降雨量热力图,只需要修改date的数值即可。

date = 20220920 # 修改日期即可,格式参考示例
tl = Timeline()

def data_to_24list(data):
    data_24_list = []
    for i in range(1, 24):
        if i < 10:
            data_24_list.append(str(data) + '0' + str(i))
        else:
            data_24_list.append(str(data) + str(i))
    data_24_list.append(str(data) + '00')
    return data_24_list


for data in data_to_24list(date):
    print(f'现在日期为{data}....')
    URL = f'http://www.nmc.cn/rest/real/rain/hour24/{data}'
    req = requests.get(URL)
    temp = json.loads(req.text)
    D = str(data)
    temp_pd = pd.DataFrame(temp['data']['data'])
    temp_pd.columns = ["pname", "name", "code", "lng", "lat", "value", "url"]

    map0 = (
        Geo().add_schema(maptype='china',
                         label_opts=opts.LabelOpts(is_show=False))  # 展示地区名称
        .add(series_name='',
             data_pair=[(i, j) for i, j in zip(temp_pd.pname, temp_pd.values)],
             type_=GeoType.HEATMAP)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title=f"{D[:4]}-{D[4:6]}-{D[6:8]} 24小时降水量Geo"),
            visualmap_opts=opts.VisualMapOpts(max_=250),
        ))
    tl.add(map0, f"{D[:4]}-{D[4:6]}-{D[6:8]}-{D[8:]}")
tl.render("./24_timeline_rain_Geo.html")

你可能感兴趣的:(python,pandas,数据挖掘,数据分析)