python实现新冠疫情各国人数动态图
前言效果
今天用python实现新冠疫情各国人数动态图
一、代码
1.建立好我们的数据
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
import numpy as np
import pandas as pd
def get_value(df1,k):
data=df1.loc[k].to_list()
k=k+1
return data,k
df1=df1
x = df1.columns.to_list()
tl = Timeline()
tl.add_schema(is_auto_play=False,
play_interval=500,
is_loop_play=False)
k=0
for i in date:
X=df1.columns.to_list()
Y=get_value(df1,k)[0]
s={"国家" :X,
"数量":Y}
tem=pd.DataFrame(s)
tem=tem.sort_values(by="数量",ascending=True)
X=tem['国家'].to_list()
Y=tem['数量'].to_list()
k=get_value(df1,k)[1]
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.WALDEN))
.add_xaxis(x)
.add_yaxis("确诊人数", Y)
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
legend_opts=opts.LegendOpts(is_show=False),
title_opts=opts.TitleOpts("".format(i)),
graphic_opts=[
opts.GraphicGroup(
graphic_item=opts.GraphicItem(
rotation=JsCode("Math.PI / 4"),
bounding="raw",
right=100,
bottom=110,
z=100,
),
children=[
opts.GraphicRect(
graphic_item=opts.GraphicItem(
left="center", top="center", z=100
),
graphic_shape_opts=opts.GraphicShapeOpts(
width=400, height=50
),
graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(
fill="rgba(0,0,0,0.3)"
),
),
opts.GraphicText(
graphic_item=opts.GraphicItem(
left="center", top="center", z=100
),
graphic_textstyle_opts=opts.GraphicTextStyleOpts(
text="重点国家{}日数据".format(i),
font="bold 26px Microsoft YaHei",
graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(
fill="#fff"
),
),
),
],
)
],
)
)
tl.add(bar, "{}年".format(i))
tl.render("timeline_bar_with_graphic.html")
根据官网的代码进行相应的修改操作
各方面数据写了很久,不奢求可以帮到大家,只希望与大家共同进步!感谢大家的支持
总结
这是效果图