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

發布: 2023-08-09 15:29:26
轉載
681 人瀏覽過

#本期利用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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!