from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import WarningType
from pyecharts.globals import ThemeType
import pandas as pd
import numpy as np
#from yishu.datasets import *
WarningType.ShowWarning = False
covid19 = pd.read_excel('covid19.xlsx')
covid19.head()
total_by_day = covid19.sum().astype(int)
total_by_day
line = Line()
line.add_xaxis(total_by_day.index.tolist())
#line.add_yaxis()
line.add_yaxis(11, total_by_day.values.tolist(), label_opts=opts.LabelOpts(is_show=False))
line.render_notebook()
bar = Bar(init_opts=opts.InitOpts(width="800px", height="600px"))
# 获取前10个地区的名称和4月4日的数据,并反转顺序
regions = covid19["地区"][:10][::-1].tolist()
cases_on_april_4 = covid19["4月4日"][:10][::-1].tolist()
# 添加x轴和y轴数据,并设置标签位置为右侧
bar.add_xaxis(regions)
bar.add_yaxis("4 月4日病例数", cases_on_april_4, label_opts=opts.LabelOpts(position="right"))
# 添加另一个数据系列(例如3月3日的数据)
cases_on_march_3 = covid19["3月3日"][:10][::-1].tolist()
bar.add_yaxis("3 月3日病例数", cases_on_march_3, label_opts=opts.LabelOpts(position="right"))
# 反转坐标轴,使柱状图从右到左显示
bar.reversal_axis()
# 在Jupyter Notebook中渲染图表
bar.render_notebook()
data = [list(z) for z in zip(covid19["地区"], covid19["4月4日"])]
data
mapping = {
'湖北': '湖北省',
'广东': '广东省',
'河南': '河南省',
'浙江': '浙江省',
'湖南': '湖南省',
'安徽': '安徽省',
'江西': '江西省',
'山东': '山东省',
'江苏': '江苏省',
'重庆': '重庆市',
'四川': '四川省',
'黑龙江': '黑龙江省',
'北京': '北京市',
'上海': '上海市',
'河北': '河北省',
'福建': '福建省',
'广西': '广西壮族自治区',
'陕西': '陕西省',
'云南': '云南省',
'海南': '海南省',
'贵州': '贵州省',
'天津': '天津市',
'山西': '山西省',
'辽宁': '辽宁省',
'吉林': '吉林省',
'香港': '香港特别行政区',
'甘肃': '甘肃省',
'新疆': '新疆维吾尔自治区',
'内蒙古': '内蒙古自治区',
'宁夏': '宁夏回族自治区',
'台湾': '台湾省',
'青海': '青海省',
'澳门': '澳门特别行政区',
'西藏': '西藏自治区'
}
# 修改省份名称
data = [[mapping.get(i[0], i[0]), i[1]] for i in data]
map = Map()
map.add("", data, "china", is_map_symbol_show=None, is_roam=None)
#map.set_global_opts(title_opts=opts.TitleOpts(title=))
map.set_global_opts(title_opts=opts.TitleOpts(title="各省份的累计确诊人数"),
visualmap_opts=opts.VisualMapOpts(
max_=10000, is_piecewise=True, range_color=['white', '#AB2524'], dimension=0, pos_right="5%",
pieces= [{"min": 0, "max": 9},{"min": 10, "max": 99},{"min": 100, "max": 999},
{"min": 1000, "max": 9999},{"min": 10000, "max": 99999}]
))
map.render_notebook()
line.set_global_opts(
title_opts=opts.TitleOpts(title="累计确诊人数", pos_top="60%", pos_left="left"),
legend_opts=opts.LegendOpts(pos_left="20%", pos_top="70%")
)
bar.set_global_opts(
xaxis_opts=opts.AxisOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(
max_=99999, is_piecewise=True, range_color=['white', '#AB2524'], dimension=0, pos_right="10%",
pieces= [{"min": 0, "max": 9},{"min": 10, "max": 99},{"min": 100, "max": 999},
{"min": 1000, "max": 9999},{"min": 10000, "max": 99999}]
)
)
grid = Grid()
grid.add(bar, grid_opts=opts.GridOpts(pos_top="10%", pos_bottom="50%", pos_left="6%", pos_right="70%"))
grid.add(line, grid_opts=opts.GridOpts(pos_top="70%", pos_bottom="5%", pos_left="6%", pos_right="65%"))
grid.add(map, grid_opts=opts.GridOpts())
grid.render_notebook()
timeline = Timeline()
timeline.add_schema(is_auto_play=True, is_timeline_show=False, is_loop_play=True, play_interval=200 )
for i, date in enumerate(covid19.columns[1:]):
bar = Bar()
bar.add_xaxis(covid19["地区"][:10][::-1].tolist())
bar.add_yaxis("", covid19[date][:10][::-1].tolist(), label_opts=opts.LabelOpts(position="right"))
bar.reversal_axis()
bar.set_global_opts(
xaxis_opts=opts.AxisOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(
max_=99999, is_piecewise=True, range_color=['white', '#AB2524'], dimension=0, pos_right="10%",
pieces= [{"min": 0, "max": 9},{"min": 10, "max": 99},{"min": 100, "max": 999},
{"min": 1000, "max": 9999},{"min": 10000, "max": 99999}]
)
)
line = Line()
line.add_xaxis(total_by_day.index.tolist())
line.add_yaxis("", total_by_day.values.tolist()[:i+1], label_opts=opts.LabelOpts(is_show=False))
line.set_global_opts(
title_opts=opts.TitleOpts(title="累计确诊人数", pos_top="60%", pos_left="left"),
legend_opts=opts.LegendOpts(pos_left="20%", pos_top="70%")
)
data = [list(z) for z in zip(covid19["地区"], covid19[date].tolist())]
map = Map()
map.add("", data, "china", is_map_symbol_show=False, is_roam=False)
map.set_global_opts(title_opts=opts.TitleOpts(title="各省份累计确诊人数(" + date + ")", pos_left="center"))
grid = Grid()
grid.add(bar, grid_opts=opts.GridOpts(pos_top="10%", pos_bottom="50%", pos_left="6%", pos_right="70%"))
grid.add(line, grid_opts=opts.GridOpts(pos_top="70%", pos_bottom="5%", pos_left="6%", pos_right="65%"))
grid.add(map, grid_opts=opts.GridOpts())
timeline.add(grid, date)
timeline.render_notebook()
疫情数据预处理,并基于pyecharts可视化分析
于 2024-10-12 14:58:43 首次发布