jupyter notebook(python)使用pycharts库实现动态地图展示

今天和大家讲动态展示中国地图,下面数据都是自己随机编写的,其没有任何参考价值,如果对简单的画中国地图不了解可以参考我先前的博文,链接如下:

Python使用pyecharts库画简单的中国地图_小琼带你轻松学编程的博客-CSDN博客_pyecharts画地图

首先导入需要的库,pyecharts和numpy,pyecharts主要用来画动态图,numpy用来做数据统计,如果没有可以使用 :

pip install numpy

pip install pyecharts 

进行下载,如果速度特别慢可以尝试添加清华大学镜像源(可自行选择需要的),命令如下:

pip install  -i numpy https://pypi.tuna.tsinghua.edu.cn/simple

pip install pyecharts  -i https://pya.edu.cn/simple

镜像源如下:

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
北京理工大学:http://mirror.bit.edu.cn/web/
中国科技大学 :https://pypi.mirrors.ustc.edu.cn/simple/
中国科学院:http://www.opencas.org/mirrors/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
淘宝:http://npm.taobao.org/
网易:http://mirrors.163.com/
搜狐:http://mirrors.sohu.com/

导入需要的库pyecharts和numpy

from pyecharts import options as opts
from pyecharts.charts import Map, Timeline
import numpy as np

导入所需要的数据,可按需自行修改数据的值,代码如下:

province_dis = {'宁夏':155,'河南':355, '北京': 117, '河北': 521, '辽宁': 612, '江西': 126, '上海':1520, '安徽': 230, '江苏': 226, '湖南': 449,'浙江': 553, '海南': 512, '广东': 712, '湖北': 118, '黑龙江': 111, '澳门': 191, '陕西': 211, '四川': 717, '内蒙古': 113, '重庆': 13,'广西':81,'云南': 216, '贵州': 121, '吉林': 131, '山西': 131, '山东': 111, '福建': 341, '青海': 151, '天津': 131,'新疆':150,'西藏':170,'甘肃':120,'台湾':31}
provice = list(province_dis.keys())
values = list(province_dis.values())

province_dis1 = {'宁夏':55,'河南': 145, '北京': 137, '河北': 121, '辽宁': 112, '江西': 16, '上海':120, '安徽': 110, '江苏': 116, '湖南': 119,'浙江': 113, '海南': 12, '广东': 212, '湖北': 18, '黑龙江': 111, '澳门': 11, '陕西': 111, '四川': 17, '内蒙古': 13, '重庆': 13,'广西':81,'云南': 16, '贵州': 21, '吉林': 31, '山西': 11, '山东': 111, '福建': 41, '青海': 51, '天津': 11,'新疆':150,'西藏':170,'甘肃':120,'台湾':31}
values1 = list(province_dis1.values())


sum_vlaues=[]
sum_vlaues.append(values),sum_vlaues.append(values1)

其中provice存放了所有省份的名字,values 和values1存放的是2015年和2016年的对应省份的数据,sum_vlaues存放的是2015和2016省份的所有数据集。

实现动态中国地图,其代码如下:

tl = Timeline()
for i in range(2015, 2017):
    map_min=int(np.min(sum_vlaues[i-2015]))
    map_max=int(np.max(sum_vlaues[i-2015]))
    china = (
        Map()
        .add("", [list(z) for z in zip(provice, sum_vlaues[i-2015])], "china")
        .set_global_opts(title_opts=opts.TitleOpts(title="中国地图"), visualmap_opts=opts.VisualMapOpts(type_='color',min_=map_min,max_=map_max))
    )
    tl.add(china, "{}年".format(i))

其中t1代表的是时间序列,是实现动态中国地图的关键所在,map_min和map_max分别存放了对应年分数据的最大值和最小值,china代表的是绘制中国地图,其中Map()代表要画的是地图,.add()代表的是省份名字和对应年份的数据集,还有图的名称,.set_global_opts()表示地图的左上角主题和色斑地图的颜色和区间,无要求可以不需要更改。

最后就是实现地图动态展示和在jupyter notebook展示:

tl.add_schema(is_auto_play=True, play_interval=1000)
tl.render_notebook()

如果不需要展示在jupyter notebook上面可以将tl.render_notebook()改为tl.render(“filename”)保存到你所需要的filename下面。

最后我们的动态图就展示出来了,运行结果如下:

 

大家能够全部掌握之后,可以依葫芦画瓢来动态实现饼图和直方图,链接如下:

jupyter notebook画简单饼图,直方图_小琼带你轻松学编程的博客-CSDN博客_jupyter画饼状图

后期会出一篇博文为大家更加详细的讲解,如何制作动态饼图和直方图。

全部代码如下所示:

from pyecharts import options as opts
from pyecharts.charts import Map, Timeline
import numpy as np

province_dis = {'宁夏':155,'河南':355, '北京': 117, '河北': 521, '辽宁': 612, '江西': 126, '上海':1520, '安徽': 230, '江苏': 226, '湖南': 449,'浙江': 553, '海南': 512, '广东': 712, '湖北': 118, '黑龙江': 111, '澳门': 191, '陕西': 211, '四川': 717, '内蒙古': 113, '重庆': 13,'广西':81,'云南': 216, '贵州': 121, '吉林': 131, '山西': 131, '山东': 111, '福建': 341, '青海': 151, '天津': 131,'新疆':150,'西藏':170,'甘肃':120,'台湾':31}
provice = list(province_dis.keys())
values = list(province_dis.values())

province_dis1 = {'宁夏':55,'河南': 145, '北京': 137, '河北': 121, '辽宁': 112, '江西': 16, '上海':120, '安徽': 110, '江苏': 116, '湖南': 119,'浙江': 113, '海南': 12, '广东': 212, '湖北': 18, '黑龙江': 111, '澳门': 11, '陕西': 111, '四川': 17, '内蒙古': 13, '重庆': 13,'广西':81,'云南': 16, '贵州': 21, '吉林': 31, '山西': 11, '山东': 111, '福建': 41, '青海': 51, '天津': 11,'新疆':150,'西藏':170,'甘肃':120,'台湾':31}
values1 = list(province_dis1.values())


sum_vlaues=[]
sum_vlaues.append(values),sum_vlaues.append(values1)


tl = Timeline()
for i in range(2015, 2017):
    map_min=int(np.min(sum_vlaues[i-2015]))
    map_max=int(np.max(sum_vlaues[i-2015]))
    china = (
        Map()
        .add("", [list(z) for z in zip(provice, sum_vlaues[i-2015])], "china")
        .set_global_opts(title_opts=opts.TitleOpts(title="中国地图"), visualmap_opts=opts.VisualMapOpts(type_='color',min_=map_min,max_=map_max))
    )
    tl.add(china, "{}年".format(i))
tl.add_schema(is_auto_play=True, play_interval=1000)      # 自动播放,跳动的间隔为1000ms
tl.render_notebook()
  • 7
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值