如何用python制作炫酷的个人足迹地图?(代码片段)

小熊猫爱恰饭 小熊猫爱恰饭     2022-12-01     173

关键词:

嗨害大家好鸭! 我是小熊猫🖤

用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 查看详情

前端每日实战:17#视频演示如何用纯css创作炫酷的同心矩形旋转动画

效果预览按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。https://codepen.io/comehope/pen/bMvbRp可交互视频教程此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。请用chrome,safari,edge打开观看。h... 查看详情

7000字23张图,pandas一键生成炫酷的动态交互式图表(代码片段)

...俊欣来源 |关于数据分析与可视化今天小编来演示一下如何用pandas一行代码来绘制可以动态交互的图表,并且将绘制的图表组合到一起,组成可视化大屏,本次小编将要绘制的图表有折线图散点图直方图柱状图饼图面... 查看详情

百度前端技术学院2018笔记之利用cssanimation制作一个炫酷的slider(代码片段)

前言题目地址利用CSSanimation制作一个炫酷的Slider思路整理首先页面包含三种东西一个是type为radio的input其实就是单选框二是每个单选框对应的label三是你要用作背景的每个图片然后具体实现思路是你点击每个label然后出现对应的图... 查看详情

如何制作炫酷的热力图

如何制作炫酷的热力图来自:http://mp.weixin.qq.com/s/s85vBmTv1GdzozQMWjY6xA2017-11-07 ArcGIS带你飞  飞言飞语 Attention “热力图”是描述趋势变化强力武器,可以将报告内容瞬间提升一个档次,不过,制作“热力... 查看详情

html+css+js制作一个超炫酷的雪花特效

七夕来袭!是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧! 查看详情

手把手教你做一个python+matplotlib的炫酷的数据可视化动图(代码片段)

1.效果图 2.注意:上述资料是虚拟的,为了学习制作动图,构建的。仅供学习,不是真实数据,请别误传。当自己需要对真实数据进行可视化时,可进行适当修改。 3.代码:#第1步:导出模块,固定importpandasaspdimportmatplotli... 查看详情

python学习之10行代码制作炫酷的词云图(匹配指定图形形状)(代码片段)

...页上有许多词云的效果图:一、需要准备什么?python代码运行需要安装第三方模块pillow(PIL)、matplotlib、jieba、wordcloud和numpy如果安装库有遇到问题,可以参见下面的解决办法,在windows上测试可用。python学... 查看详情

教你用jvectormap制作属于自己的旅行足迹(代码片段)

jVectorMapJVectorMap是一个优秀的、兼容性强的jQuery地图插件。它可以工作在包括IE6在内的各款浏览器中,矢量图输出,除官方提供各国地图数据外,用户可以使用数据转换程序定制地图数据。例如街道地图、小区地图等等。JVectorMap... 查看详情

怎么查看百度地图足迹记录轨迹

...  在手机中,打开【百度地图】。  在地图中,点击个人头像,进入【个人主页】。  在【个人主页】的【常用功能】中,选择【足迹】。  在【足迹】中,点击右上方的【菜单键】。  进入之后,是这段时间记录的... 查看详情

30张炫酷的动态交互式图表,python一键即可生成(代码片段)

今天我来讲一下如何用Python一行代码在DataFrame数据集当中生成炫酷的动态交互式的图表,本文中我们需要用到的模块cufflinks,就像是seaborn封装了matplotlib一样,cufflinks也在plotly上面做了进一步的包装及优化,方法... 查看详情

如何用python抓取百度地图数据

参考技术A使用方法:把代码保存成bmap.pypythonbmap.py或pythonbmap.py服饰厂运行后会自动采集百度地图中所有的结果,保存为以tab分割的txt文件,方便导入各种数据库。本回答被提问者采纳 查看详情

那些狂拽炫酷的web网站是怎么搭建的?(代码片段)

看到很多小伙伴都拥有自己的网站,包括学习网站,简历网站呀,好生羡慕,那到底是怎么做的呢?今天西红柿就通过云服务器进行演示。目录个人建站能干嘛呢?1、个人简历2、自我营销3、生活纪实4、... 查看详情

推荐8个炫酷的数据可视化大屏项目!

...图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏。Gitee:https://gitee.com/MTrun/go-viewvue-big-screen一个基于Vue、Datav、Echart框架的"数据大屏项目&# 查看详情

推荐8个炫酷的数据可视化大屏项目!

...图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏。Gitee:https://gitee.com/MTrun/go-viewvue-big-screen一个基于Vue、Datav、Echart框架的"数据大屏项目&# 查看详情

python如何用pyecharts实现地图数据可视化?(代码片段)

自2013年6月百度EFE(ExcellentFrontEnd)数据可视化团队研发的ECharts1.0发布到GitHub网站以来,ECharts一直备受业界权威的关注并获得广泛好评,成为目前成熟且流行的数据可视化图表工具,被应用到诸多数据可视化... 查看详情

canvas,制作炫酷的时钟和倒计时

html部分p.p1{margin:0.0px0.0px0.0px0.0px;font:30.0pxConsolas;color:#2b7ec3}p.p2{margin:0.0px0.0px0.0px0.0px;font:30.0pxConsolas;color:#a5b2b9}p.p3{margin:0.0px0.0px0.0px0.0px;font:30.0pxConsolas;color:# 查看详情