Pyecharts可视化全国新冠疫情

编程入门 行业动态 更新时间:2024-10-15 18:25:34

Pyecharts可视化全国新冠<a href=https://www.elefans.com/category/jswz/34/1769963.html style=疫情"/>

Pyecharts可视化全国新冠疫情

目录

一、前言

二、代码实现过程

        1、导包

        2、创建类对象

        3、查看数据概况

         4、画中国地图

        5、画城市柱状图

        6、画省份柱状图

        7、画城市饼图

        8、画省份饼图

        9、画可视化大屏

        10、定义主方法

        11、运行主方法

 三、以下是完整代码


pyecharts官网:

一、前言

1、近几年来,我国一直受着新冠疫情的侵扰,随着每天新冠信息的日夜更迭,我们该如何从新闻中挖掘到有效信息呢?所以大体有2部分,第一是进行数据采集 ,第二是进行数据分析和数据可视化。新冠疫情的数据采集部分已经发了,大家如果不知道,可以点击这个链接,本篇讲述的是如何对新冠疫情数据进行数据分析和数据可视化。可视化大屏效果图如下​

 

2、通过新冠疫情数据采集部分,我们得到了一个名叫COVID_19的csv文件,如下图,这是我们进行数据分析和数据可视化的基础,接下来就是进行数据分析和数据可视化了

二、代码实现过程

        1、导包

# coding=utf-8
import pandas as pd  # 用pandas进行数据处理
from pyecharts.charts import Bar,Page,Pie,Map  # 画柱状图,可视化大屏,饼图,地图
import pyecharts.options as opts  # 设置配置项
from pyecharts.globals import ThemeType  # 设置主题

        2、创建类对象

   创建对象并构建读取csv文件的全局变量

class Analysis(object):def __init__(self):self.data=pd.read_csv('./COVID_19.csv',encoding='gbk')  # 读取文件

        3、查看数据概况

    def data_info(self):print(self.data)  # 查看数据print(self.data.info())  # 查看数据概况print(self.data.describe())  # 查看数据描述

        运行结果如图

         4、画中国地图

    def china_map(self):total_number=self.data['本土确诊']+self.data['本土无症状']  # 总感染者数量print(total_number)data=self.data['日期'].tolist()  # 转换为python的列表map_=(Map(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=1))  # 设置主题和id.add("感染人数", [list(z) for z in zip(self.data['城市'].tolist(),total_number.tolist())], "china-cities").set_global_opts(title_opts=opts.TitleOpts(title="中国地区疫情严重程度",subtitle='更新时间:{0}'.format(data[0])),  # 设置标题visualmap_opts=opts.VisualMapOpts(max_=9000,is_piecewise=True),  # 配置视觉映射,最大值为7000000toolbox_opts=opts.ToolboxOpts(is_show=True)  # 设置工具箱).set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 取消标签配置项# .render('地图.html'))return map_

        5、画城市柱状图

    def city_bar(self):number_of_confirmed_each_city=self.data[['城市','本土确诊']].nlargest(10,'本土确诊')  # 本土确诊数量前10的城市number_of_asymptomatic_each_city=self.data[['城市','本土无症状']].nlargest(10,'本土无症状')  # 本土无症状数量前10的城市data=self.data['日期'].tolist()  # 转换为python的列表bar=(Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=2))  # 设置主题和id.add_xaxis(number_of_asymptomatic_each_city['城市'].tolist()).add_yaxis('本土无症状数量',number_of_asymptomatic_each_city['本土无症状'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='yellow'))  # 设置柱状颜色.add_yaxis('本土确诊数量',number_of_confirmed_each_city['本土确诊'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='#00BFFF'))  # 设置柱状颜色.set_global_opts(title_opts=opts.TitleOpts(title='各城市的无症状和确诊人数',title_link='=1001.2014.3001.5502',subtitle='更新时间:{0}'.format(data[0])),  # 设置标题,标题链接,和副标题toolbox_opts=opts.ToolboxOpts(is_show=True),  # 设置工具箱datazoom_opts=[opts.DataZoomOpts(is_show=True),opts.DataZoomOpts(type_='inside')])  # 设置区域缩放条# .render('柱状图1.html'))return bar

        6、画省份柱状图

    def provinces_bar(self):data2 = self.data[['所属省份', '本土确诊']].groupby(['所属省份'])[['本土确诊']].sum()  # 各省份本土确诊数量总和data3 = self.data[['所属省份', '本土无症状']].groupby(['所属省份'])[['本土无症状']].sum()  # 各省份本土无症状数量总和data=self.data['日期'].tolist()  # 转换为python的列表bar=(Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=3))  # 设置主题和id.add_xaxis(data2.index.tolist()).add_yaxis('本土无症状数量',data3['本土无症状'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='yellow'))  # 设置柱状颜色.add_yaxis('本土确诊数量',data2['本土确诊'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='#00BFFF'))  # 设置柱状颜色.set_global_opts(title_opts=opts.TitleOpts(title='各省份无症状和确诊人数',title_link='=1001.2014.3001.5502',subtitle='更新时间:{0}'.format(data[0])),  # 设置标题,标题链接,和副标题toolbox_opts=opts.ToolboxOpts(is_show=True),  # 设置工具箱datazoom_opts=[opts.DataZoomOpts(is_show=True), opts.DataZoomOpts(type_='inside')])  # 设置区域缩放条# .render('柱状图2.html'))return bar

        7、画城市饼图

    def city_pie(self):High_risk_city_areas = self.data[['城市', '高风险地区']].nlargest(5, '高风险地区')  # 高风险地区数量前10的城市pie=(Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=4))  # 设置主题和id.add('高风险地区数量', [list(z) for z in zip(High_risk_city_areas['城市'],High_risk_city_areas['高风险地区'])],center=["35%", "50%"]).set_global_opts(title_opts=opts.TitleOpts(title='高风险地区数量前10的城市',title_link='',pos_left='40%'),  # 设置标题,标题链接,和标题的位置legend_opts=opts.LegendOpts(pos_left="80%",type_="scroll",orient="vertical"))  # 设置图例的位置.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 设置返回的提示框内容# .render('饼图1.html'))return pie

        8、画省份饼图

    def provinces_pie(self):data1=self.data[['所属省份','高风险地区']].groupby(['所属省份'])[['高风险地区']].sum()  # 各省份高风险地区数量总和High_risk_provinces_areas=data1.nlargest(5,'高风险地区')  # 高风险地区数量前10的省份pie=(Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=5))  # 设置主题和id.add('高风险地区数量', [list(z) for z in zip(High_risk_provinces_areas.index,High_risk_provinces_areas['高风险地区'])],center=["35%", "50%"]).set_global_opts(title_opts=opts.TitleOpts(title='高风险地区数量前10的省份',title_link='',pos_left='40%'),  # 设置标题,标题链接,和标题的位置legend_opts=opts.LegendOpts(pos_left="80%",type_="scroll",orient="vertical"))  # 设置图例的位置.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 设置返回的提示框内容# .render('饼图2.html'))

        9、画可视化大屏

    def page(self):c=(Page(layout=Page.DraggablePageLayout)  # 可以自定义布局.add(self.china_map(),self.city_bar(),self.provinces_bar(),self.city_pie(),self.provinces_pie(),).render())  # 调用以上的功能图函数Page.save_resize_html('render.html',cfg_file='./chart_config.json',  # 调整布局后生成的json文件dest='组合图.html')  # 根据调整后的布局生成的组合图

        10、定义主方法

    def run(self):self.data_info()  # 运行数据概况函数self.page()  # 运行可视化大屏函数

        11、运行主方法

if __name__ == '__main__':analysis=Analysis()  # 创建实例对象analysis.run()  # 运行主函数

目录中生成了名叫组合图的html文件,打开浏览器运行

 三、以下是完整代码

# coding=utf-8
import pandas as pd  # 用pandas进行数据处理
from pyecharts.charts import Bar,Page,Pie,Map  # 画柱状图,可视化大屏,饼图,地图
import pyecharts.options as opts  # 设置配置项
from pyecharts.globals import ThemeType  # 设置主题
class Analysis(object):def __init__(self):self.data=pd.read_csv('./COVID_19.csv',encoding='gbk')  # 读取文件def data_info(self):print(self.data)  # 查看数据print(self.data.info())  # 查看数据概况print(self.data.describe())  # 查看数据描述def china_map(self):total_number=self.data['本土确诊']+self.data['本土无症状']  # 总感染者数量print(total_number)data=self.data['日期'].tolist()  # 转换为python的列表map_=(Map(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=1))  # 设置主题和id.add("感染人数", [list(z) for z in zip(self.data['城市'].tolist(),total_number.tolist())], "china-cities").set_global_opts(title_opts=opts.TitleOpts(title="中国地区疫情严重程度",subtitle='更新时间:{0}'.format(data[0])),  # 设置标题visualmap_opts=opts.VisualMapOpts(max_=9000,is_piecewise=True),  # 配置视觉映射,最大值为7000000toolbox_opts=opts.ToolboxOpts(is_show=True)  # 设置工具箱).set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 取消标签配置项# .render('地图.html'))return map_def city_bar(self):number_of_confirmed_each_city=self.data[['城市','本土确诊']].nlargest(10,'本土确诊')  # 本土确诊数量前10的城市number_of_asymptomatic_each_city=self.data[['城市','本土无症状']].nlargest(10,'本土无症状')  # 本土无症状数量前10的城市data=self.data['日期'].tolist()  # 转换为python的列表bar=(Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=2))  # 设置主题和id.add_xaxis(number_of_asymptomatic_each_city['城市'].tolist()).add_yaxis('本土无症状数量',number_of_asymptomatic_each_city['本土无症状'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='yellow'))  # 设置柱状颜色.add_yaxis('本土确诊数量',number_of_confirmed_each_city['本土确诊'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='#00BFFF'))  # 设置柱状颜色.set_global_opts(title_opts=opts.TitleOpts(title='各城市的无症状和确诊人数',title_link='=1001.2014.3001.5502',subtitle='更新时间:{0}'.format(data[0])),  # 设置标题,标题链接,和副标题toolbox_opts=opts.ToolboxOpts(is_show=True),  # 设置工具箱datazoom_opts=[opts.DataZoomOpts(is_show=True),opts.DataZoomOpts(type_='inside')])  # 设置区域缩放条# .render('柱状图1.html'))return bardef provinces_bar(self):data2 = self.data[['所属省份', '本土确诊']].groupby(['所属省份'])[['本土确诊']].sum()  # 各省份本土确诊数量总和data3 = self.data[['所属省份', '本土无症状']].groupby(['所属省份'])[['本土无症状']].sum()  # 各省份本土无症状数量总和data=self.data['日期'].tolist()  # 转换为python的列表bar=(Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=3))  # 设置主题和id.add_xaxis(data2.index.tolist()).add_yaxis('本土无症状数量',data3['本土无症状'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='yellow'))  # 设置柱状颜色.add_yaxis('本土确诊数量',data2['本土确诊'].tolist(),itemstyle_opts=opts.ItemStyleOpts(color='#00BFFF'))  # 设置柱状颜色.set_global_opts(title_opts=opts.TitleOpts(title='各省份无症状和确诊人数',title_link='=1001.2014.3001.5502',subtitle='更新时间:{0}'.format(data[0])),  # 设置标题,标题链接,和副标题toolbox_opts=opts.ToolboxOpts(is_show=True),  # 设置工具箱datazoom_opts=[opts.DataZoomOpts(is_show=True), opts.DataZoomOpts(type_='inside')])  # 设置区域缩放条# .render('柱状图2.html'))return bardef city_pie(self):High_risk_city_areas = self.data[['城市', '高风险地区']].nlargest(5, '高风险地区')  # 高风险地区数量前10的城市pie=(Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=4))  # 设置主题和id.add('高风险地区数量', [list(z) for z in zip(High_risk_city_areas['城市'],High_risk_city_areas['高风险地区'])],center=["35%", "50%"]).set_global_opts(title_opts=opts.TitleOpts(title='高风险地区数量前10的城市',title_link='',pos_left='40%'),  # 设置标题,标题链接,和标题的位置legend_opts=opts.LegendOpts(pos_left="80%",type_="scroll",orient="vertical"))  # 设置图例的位置.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 设置返回的提示框内容# .render('饼图1.html'))return piedef provinces_pie(self):data1=self.data[['所属省份','高风险地区']].groupby(['所属省份'])[['高风险地区']].sum()  # 各省份高风险地区数量总和High_risk_provinces_areas=data1.nlargest(5,'高风险地区')  # 高风险地区数量前10的省份pie=(Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK,chart_id=5))  # 设置主题和id.add('高风险地区数量', [list(z) for z in zip(High_risk_provinces_areas.index,High_risk_provinces_areas['高风险地区'])],center=["35%", "50%"]).set_global_opts(title_opts=opts.TitleOpts(title='高风险地区数量前10的省份',title_link='',pos_left='40%'),  # 设置标题,标题链接,和标题的位置legend_opts=opts.LegendOpts(pos_left="80%",type_="scroll",orient="vertical"))  # 设置图例的位置.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))  # 设置返回的提示框内容# .render('饼图2.html'))return piedef page(self):c=(Page(layout=Page.DraggablePageLayout)  # 可以自定义布局.add(self.china_map(),self.city_bar(),self.provinces_bar(),self.city_pie(),self.provinces_pie(),).render())  # 调用以上的功能图函数Page.save_resize_html('render.html',cfg_file='./chart_config.json',  # 调整布局后生成的json文件dest='组合图.html')  # 根据调整后的布局生成的组合图def run(self):self.data_info()  # 运行数据概况函数self.page()  # 运行可视化大屏函数if __name__ == '__main__':analysis=Analysis()  # 创建实例对象analysis.run()  # 运行主函数

更多推荐

Pyecharts可视化全国新冠疫情

本文发布于:2024-02-07 00:33:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751878.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:疫情   全国   Pyecharts

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!