关键词:
用Python来绘制自己的个人足迹地图, 精确到市级别。
首先我们需要安装以下Python的第三方模块:
echarts-china-cities-pypkg==0.0.9
echarts-china-provinces-pypkg==0.0.3
pyecharts==1.6.2
PyYAML==5.3.1
本项目的完整结构如下:
我们在项目中采用YAML文件来配置自己旅行过的省以及省下面的市,配置文件如下:
北京:
- 延庆区
- 昌平区
- 海淀区
- 东城区
- 西城区
- 大兴区
- 朝阳区
上海:
- 嘉定区
- 青浦区
- 松江区
- 宝山区
- 闵行区
- 奉贤区
- 浦东新区
- 崇明区
- 徐汇区
- 黄浦区
- 静安区
- 杨浦区
- 虹口区
- 金山区
- 长宁区
- 普陀区
天津:
- 滨海新区
- 南开区
- 河西区
- 和平区
河北:
- 保定市
- 廊坊市
山东:
- 烟台市
- 青岛市
江苏:
- 南京市
- 苏州市
- 扬州市
- 镇江市
- 无锡市
浙江:
- 杭州市
- 绍兴市
- 宁波市
- 舟山市
- 湖州市
- 嘉兴市
- 台州市
- 金华市
江西:
- 南昌市
- 九江市
安徽:
- 黄山市
湖北:
- 武汉市
湖南:
- 长沙市
海南:
- 海口市
- 三亚市
四川:
- 成都市
广东:
- 湛江市
接着我们利用Python脚本来生成足迹地图。先是全国地图,用于显示省和直辖市的情况,china_map.py的代码如下:
# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/5/31 9:21 上午
# 绘制个人足迹地图:全国范围
import yaml
from pyecharts.charts import Map
from pyecharts import options as opts
# 省和直辖市
with open("travel_config.yml", 'r', encoding='utf-8') as ymlfile:
province_city_dict = yaml.safe_load(ymlfile)
province_dict = dict(zip(province_city_dict.keys(), [1]*len(province_city_dict.keys())))
print(province_dict)
# maptype='china' 只显示全国直辖市和省级
map = Map(init_opts=opts.InitOpts(width='1200px', height='800px'))
map.set_global_opts(
title_opts=opts.TitleOpts(title="个人足迹地图"),
visualmap_opts=opts.VisualMapOpts(max_=1, is_piecewise=True,
pieces=[
"max": 1, "min": 1, "label": "去过", "color": "#4EA397",
"max": 0, "min": 0, "label": "未去过", "color": "#FFFFFF",
]) #最大数据范围,分段
)
map.add("个人足迹地图", data_pair=province_dict.items(), maptype="china", is_roam=True)
map.render('全国.html')
运行上述脚本,会生成全国.html。为了保证图片居中显示,我们对该HTML中的下面一行:
<div id="a438407081634ceab6af1c965034ae16" class="chart-container" style="width:1200px; height:800px;"></div>
的样式(style)增加如下内容:
margin:auto;top:30px
全国范围的足迹地图效果图如下:
接着,我们来生成每个省市的足迹地图,利用province_map.py脚本,代码如下:
# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/5/31 10:01 上午
# 绘制个人足迹地图:省市范围
import yaml
from pyecharts.charts import Map
from pyecharts import options as opts
# 省和直辖市下面的市
with open("travel_config.yml", 'r', encoding='utf-8') as ymlfile:
province_city_dict = yaml.safe_load(ymlfile)
for province, cities in province_city_dict.items():
map = Map(init_opts=opts.InitOpts(width='1200px', height='800px'))
map.set_global_opts(
title_opts=opts.TitleOpts(title="个人足迹地图-%s" % province),
visualmap_opts=opts.VisualMapOpts(max_=1, is_piecewise=True,
pieces=[
"max": 1, "min": 1, "label": "去过", "color": "#4EA397",
"max": 0, "min": 0, "label": "未去过", "color": "#FFFFFF",
]) #最大数据范围,分段
)
city_dict = dict(zip(cities, [1]*len(cities)))
map.add("个人足迹地图-%s" % province, data_pair=city_dict.items(), maptype=province, is_roam=True)
map.render('./provinces/%s.html' % province)
print("生成个人足迹地图-%s 成功" % province)
这时,会在provinces目录下生成每个省或者直辖市的足迹地图,我们分别对每个HTML进行修改,保证图片居中。我们在这里只展示三个省市的情况:
最后一步,也是最为关键的一步,就是我们要打通全国足迹地图和每个省市足迹地图的联系,也就是说,我们点击全国足迹地图上去过的省份,那么可以点击进去查看该省市下的足迹地图情况,比如说去过哪些市。
对此,我们修改生成的全国.html文件,假设该地图的图像句柄为chart_a438407081634ceab6af1c965034ae16,那么在最后的
chart_a438407081634ceab6af1c965034ae16.on('click', function (param)
var selected = param.name;
if (selected)
switch(selected)
case '北京':
location.href = "provinces/北京.html";
break;
case '上海':
location.href = "provinces/上海.html";
break;
case '天津':
location.href = "provinces/天津.html";
break;
case '四川':
location.href = "provinces/四川.html";
break;
case '安徽':
location.href = "provinces/安徽.html";
break;
case '山东':
location.href = "provinces/山东.html";
break;
case '江苏':
location.href = "provinces/江苏.html";
break;
case '江西':
location.href = "provinces/江西.html";
break;
case '河北':
location.href = "provinces/河北.html";
break;
case '浙江':
location.href = "provinces/浙江.html";
break;
case '海南':
location.href = "provinces/海南.html";
break;
case '湖北':
location.href = "provinces/湖北.html";
break;
case '湖南':
location.href = "provinces/湖南.html";
break;
case '广东':
location.href = "provinces/广东.html";
break;
default:
break;
);
我特意制作了个人足迹地图的视频:
个人足迹
python之绘制个人足迹地图(代码片段)
...别,无法精确到市级别,因此,笔者周末花了点时间,用Python来绘制自己的个人足迹地图,可以精确到市级别。??下面的部分,笔者将介绍如何简单地来绘制个人足迹地图。??首先我们需要安装以下Python的第三方模块:echarts-c 查看详情
python之绘制个人足迹地图(代码片段)
...别,无法精确到市级别,因此,笔者周末花了点时间,用Python来绘制自己的个人足迹地图,可以精确到市级别。??下面的部分,笔者将介绍如何简单地来绘制个人足迹地图。??首先我们需要安装以下Python的第三方模块:echarts-c 查看详情
百度前端技术学院2018笔记之利用cssanimation制作一个炫酷的slider(代码片段)
前言题目地址利用CSSanimation制作一个炫酷的Slider思路整理首先页面包含三种东西一个是type为radio的input其实就是单选框二是每个单选框对应的label三是你要用作背景的每个图片然后具体实现思路是你点击每个label然后出现对应的图... 查看详情
手把手教你做一个python+matplotlib的炫酷的数据可视化动图(代码片段)
1.效果图 2.注意:上述资料是虚拟的,为了学习制作动图,构建的。仅供学习,不是真实数据,请别误传。当自己需要对真实数据进行可视化时,可进行适当修改。 3.代码:#第1步:导出模块,固定importpandasaspdimportmatplotli... 查看详情
教你用jvectormap制作属于自己的旅行足迹(代码片段)
jVectorMapJVectorMap是一个优秀的、兼容性强的jQuery地图插件。它可以工作在包括IE6在内的各款浏览器中,矢量图输出,除官方提供各国地图数据外,用户可以使用数据转换程序定制地图数据。例如街道地图、小区地图等等。JVectorMap... 查看详情
python学习之10行代码制作炫酷的词云图(匹配指定图形形状)(代码片段)
...页上有许多词云的效果图:一、需要准备什么?python代码运行需要安装第三方模块pillow(PIL)、matplotlib、jieba、wordcloud和numpy如果安装库有遇到问题,可以参见下面的解决办法,在windows上测试可用。python学... 查看详情
那些狂拽炫酷的web网站是怎么搭建的?(代码片段)
看到很多小伙伴都拥有自己的网站,包括学习网站,简历网站呀,好生羡慕,那到底是怎么做的呢?今天西红柿就通过云服务器进行演示。目录个人建站能干嘛呢?1、个人简历2、自我营销3、生活纪实4、... 查看详情
python+esp32diy炫酷的物联网远程机械臂(代码片段)
来这里发现更多创意案例HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。https://haas.iot.aliyun.com/solution/1、简介1.1、背景 机器人和人工智能... 查看详情
炫酷的花式滑块滑动无缝切换特效(代码片段)
💂个人网站:【海拥】【小霸王游戏机】【大转盘】🤟风趣幽默的前端学习课程:👉28个案例趣学前端💅想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习群】【学习文档】💬免费且实用... 查看详情
炫酷的花式滑块滑动无缝切换特效(代码片段)
💂个人网站:【海拥】【小霸王游戏机】【大转盘】🤟风趣幽默的前端学习课程:👉28个案例趣学前端💅想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习群】【学习文档】💬免费且实用... 查看详情
炫酷的css形状(值得收藏)(代码片段)
在今日头条中看到炫酷的CSS形状,就记录一下:1.圆形 #circlewidth:100px;height:100px;background:red;border-radius:50% 2.椭圆形#ovalwidth:200px;height:100px;background:red;border-radius:100px/50px;3.上三角#triangle-up 查看详情
如何制作炫酷的热力图
如何制作炫酷的热力图来自:http://mp.weixin.qq.com/s/s85vBmTv1GdzozQMWjY6xA2017-11-07 ArcGIS带你飞 飞言飞语 Attention “热力图”是描述趋势变化强力武器,可以将报告内容瞬间提升一个档次,不过,制作“热力... 查看详情
html+css+js制作一个超炫酷的雪花特效
七夕来袭!是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧! 查看详情
使用coordinatorlayout打造各种炫酷的效果(代码片段)
使用CoordinatorLayout打造各种炫酷的效果自定义Behavior——仿知乎,FloatActionButton隐藏与展示NestedScrolling机制深入解析一步步带你读懂CoordinatorLayout源码自定义Behavior-仿新浪微博发现页的实现ViewPager,ScrollView嵌套ViewPager滑动... 查看详情
怎么查看百度地图足迹记录轨迹
... 在手机中,打开【百度地图】。 在地图中,点击个人头像,进入【个人主页】。 在【个人主页】的【常用功能】中,选择【足迹】。 在【足迹】中,点击右上方的【菜单键】。 进入之后,是这段时间记录的... 查看详情
如何使用炫酷的图标(代码片段)
1.下载插件npminstall@jiaminghi/data-view2.全局导入//将自动注册所有组件为全局组件importdataVfrom'@jiaminghi/data-view'Vue.use(dataV)3.就可以使用大屏数据展示页面即数据可视化地址:介绍|DataV4.就简单写一个使用方法 <template... 查看详情
一个炫酷的头像悬停效果(代码片段)
...停效果,可以用在你的头像交互上面。看到了吗?我们将制作一个缩放动画,其中头像部分似乎从它所在的圆圈中钻出来了。是不是很酷呢?接下来让我们一起一步一步地构建这个动画交互效果。HTML:只需要一个元素是的,只... 查看详情
几个炫酷的idea插件(代码片段)
.ignore用来创建Git的.ginore文件,该插件带有大量的模板配置。BashSupport用来支持和执行Bash脚本。Windows下需要安装WSL。Lombok一款提高Java中Setter和Getter编写效率的插件。Java语言,每次写实体类的时候都需要写一大堆的setter,getter,如... 查看详情