Pandas+Pyecharts | 北京近五年历史天气数据可视化

文章目录

  • ️‍ 1. 导入模块
  • ️‍ 2. Pandas数据处理
    • 2.1 读取数据
    • 2.2 处理最低气温最高气温数据
    • 2.3 处理日期数据
    • 2.4 处理风力风向数据
  • ️‍ 3. Pyecharts数据可视化
    • 3.1 2018-2022年历史温度分布
    • 3.2 2022年历史温度分布
    • 3.3 2021年历史温度分布
    • 3.4 2019年历史温度分布
    • 3.5 2022年夜间_白天风力分布
    • 3.6 2022年夜间风向分布
    • 3.7 2022年白天风向分布
    • 3.8 2018-2022年各类型天气数量
    • 3.9 2018-2022年每月平均最高温度
  • ️‍ 可视化项目源码+数据

大家好,我是 【Python当打之年(点击跳转)】

本期利用 python 的 pyecharts 可视化库绘制 北京市历史天气数据,看看 历史高温、历史低温分布以及白天、夜晚的风力、风向分布等情况,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

️‍ 1. 导入模块

import pandas as pd
from pyecharts.charts import Line
from pyecharts.charts import Bar
from pyecharts.charts import Scatter
from pyecharts.charts import Pie
from pyecharts.charts import EffectScatter
from pyecharts.charts import Calendar
from pyecharts.charts import Polar
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

️‍ 2. Pandas数据处理

2.1 读取数据

df_weather = pd.read_excel('./2018-2022年天气数据.xlsx')

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第1张图片

2018-2022年五年的历史天气数据共1839条。

2.2 处理最低气温最高气温数据

df_weather_1 = df_weather.copy()
df_weather_1[['最低气温','最高气温']] = df_weather_1['最低气温/最高气温'].str.split(' / ',expand=True)
df_weather_1['最低气温'] = df_weather_1['最低气温'].str[:-2]
df_weather_1['最高气温'] = df_weather_1['最高气温'].str[:-1]
df_weather_1['最低气温'] = df_weather_1['最低气温'].astype('int')
df_weather_1['最高气温'] = df_weather_1['最高气温'].astype('int')

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第2张图片

2.3 处理日期数据

df_weather_1['日期'] = pd.to_datetime(df_weather_1['日期'],format='%Y年%m月%d日')
df_weather_1['日期s'] = df_weather_1['日期'].dt.strftime('%Y/%m/%d')

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第3张图片

2.4 处理风力风向数据

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第4张图片

️‍ 3. Pyecharts数据可视化

3.1 2018-2022年历史温度分布

def get_scatter():
    scatter = (
        Scatter()
        .add_xaxis(x_data)
        .add_yaxis("最低气温", y_data1)
        .add_yaxis("最高气温", y_data2)
        .set_global_opts(
            legend_opts=opts.LegendOpts(is_show=False),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color
            ),
            title_opts=opts.TitleOpts(
                title='1-2018-2022年历史温度分布',
                pos_top='1%',
                pos_left="1%",
            )
        )
    )

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第5张图片

3.2 2022年历史温度分布

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第6张图片
历史最高温度39℃,历史最低温度-12℃。

3.3 2021年历史温度分布

def get_calendar():
    calendar = (
        Calendar()
        .add('',
             data_21,
             calendar_opts=opts.CalendarOpts(
                 pos_right='5%',
                 range_='2021',
                daylabel_opts=opts.CalendarDayLabelOpts(name_map='cn'),
                monthlabel_opts=opts.CalendarMonthLabelOpts(name_map='cn')
             ),
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='3-2021年历史温度分布',
                pos_top='1%',
                pos_left="1%",
            ),
            visualmap_opts=opts.VisualMapOpts(
                range_color=range_color,
            )
        )
    )

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第7张图片

3.4 2019年历史温度分布

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第8张图片

3.5 2022年夜间_白天风力分布

def get_pie():
    pie = (
        Pie()
        .add(
            "",
            [list(z) for z in zip(x_data, y_data1)],
            radius=["30%", "50%"],
            center=["30%", "55%"],
        )
        .add(
            "",
            [list(z) for z in zip(x_data, y_data2)],
            radius=["30%", "50%"],
            center=["70%", "55%"],
        )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='5-2022年夜间_白天风力分布',
                pos_top='1%',
                pos_left="1%",
            ),
            legend_opts=opts.LegendOpts(pos_top='10%'),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color
            ),
        )
    )

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第9张图片

3.6 2022年夜间风向分布

def get_polor():
    polor = (
        Polar()
        .add("", values,type_="bar")
        .set_global_opts(
            legend_opts=opts.LegendOpts(is_show=False),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color
            ),
            title_opts=opts.TitleOpts(
                title='6-2022年夜间风向分布',
                pos_top='1%',
                pos_left="1%",
            ),
        )
    )

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第10张图片

3.7 2022年白天风向分布

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第11张图片

3.8 2018-2022年各类型天气数量

def get_bar():
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis("",y_data)
        .set_global_opts(
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
                range_color=range_color
            ),
            legend_opts=opts.LegendOpts(is_show=False),
            title_opts=opts.TitleOpts(
                title='8-2018-2022年各类型天气数量',
                pos_top='1%',
                pos_left="1%",
            ),
        )
    )

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第12张图片

3.9 2018-2022年每月平均最高温度

Pandas+Pyecharts | 北京近五年历史天气数据可视化_第13张图片

️‍ 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

你可能感兴趣的:(Pyecharts系列,Python可视化系列,信息可视化,pandas,数据分析)