Beginning
谈及央视的新闻连播,我们脑海中最先浮现的是什么画面呢?估计大多数人想到就是一开始的伴随着音乐旋转而来的蓝色地球了吧。我们今天的这篇文章也就是围绕着三维立体旋转地球来展开的,当然其所依赖的工具仍是pyecharts,那我们就开始喽!
1.准备工作
在利用pyecharts编写代码时,我们往往少不了对整体添加各种配置,其中必须配置项包含maptype、series_name、data_pair,今天内容的数据项需要我们从pyecharts包中进行导入:
from pyecharts.faker import POPULATION
当然也可以使用自己的数据来满足其他需求,如导入全球新馆疫情数据,制作三维的疫情分布图。
- 对于POPULATION数据,其类型是list,具体是2019年全球人口统计数据,为了更好的分析数据,我将这个自带的数据导出为了CSV文件,便于日后其他工作的数据源,如下(部分):
2.过程展示
值得注意的是,在使用MapGlobe()类时add_schema()这个子类不同于以往的情况,这里的参数很少,更多的配置是在add()子类中,所以我在这个子类中进行配置,可以明显的看到一步一步的效果,如下:
- 仅数据项:
- 数据项+过渡颜色
- 数据项+过渡颜色+底色:
3.实现代码
import pyecharts.options as opts
from pyecharts.charts import MapGlobe
from pyecharts.faker import POPULATION
data = [x for _, x in POPULATION[1:]]
Globe_World=(
MapGlobe(init_opts=opts.InitOpts(
width="1500px",height="900px",
page_title="人口-world",bg_color="#00BFFF"))
.add_schema()
.add(
maptype="world",
series_name="世界人口地图",
data_pair=POPULATION[1:],
is_map_symbol_show=True,
label_opts=opts.LabelOpts(is_show=False),
is_roam=True,
tooltip_opts=opts.TooltipOpts(
is_show=True,trigger="item",
trigger_on="mousemove|click"),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
is_show=True,
type_="color",
min_=min(data),
max_=max(data),
is_calculable=True, # 显示拖拽的手柄
# is_piecewise=True, # 分段类型 不生效
border_color="rgb(105,105,105)",
range_color=["SeaGreen","Aquamarine","DarkRed"],
)
)
.render('Globe_World.html')
)