首頁 >後端開發 >Python教學 >Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

Python当打之年
Python当打之年轉載
2023-08-09 15:29:26885瀏覽

#本期利用python 的pyecharts 視覺化函式庫繪製北京市歷史天氣資料,看看歷史高溫、歷史低溫分佈以及白天、夜晚的風力、風向分佈等情況希望對大家有幫助,如有疑問或需要改進的地方可以聯絡小編。

#涉及的函式庫:
Pandas — 資料處理
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 | 北京近五年歷史天氣資料視覺化

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.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 | 北京近五年歷史天氣資料視覺化
2.4 处理风力风向数据

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

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年历史温度分布',
                subtitle='-- 制图@公众号:Python当打之年 --',
                pos_top='1%',
                pos_left="1%",
            )
        )
    )

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

3.2 2022年历史温度分布

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

历史最高温度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年历史温度分布',
                subtitle='-- 制图@公众号:Python当打之年 --',
                pos_top='1%',
                pos_left="1%",
            ),
            visualmap_opts=opts.VisualMapOpts(
                range_color=range_color,
            )
        )
    )

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

3.4 2019年历史温度分布
Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

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年夜间_白天风力分布',
                subtitle='-- 制图@公众号:Python当打之年 --',
                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 | 北京近五年歷史天氣資料視覺化

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年夜间风向分布',
                subtitle='-- 制图@公众号:Python当打之年 --',
                pos_top='1%',
                pos_left="1%",
            ),
        )
    )
Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

3.7 2022年白天风向分布

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

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年各类型天气数量',
                subtitle='-- 制图@公众号:Python当打之年 --',
                pos_top='1%',
                pos_left="1%",
            ),
        )
    )
Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

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

Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化

以上是Pandas+Pyecharts | 北京近五年歷史天氣資料視覺化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Python当打之年。如有侵權,請聯絡admin@php.cn刪除