亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Python繪制個(gè)人足跡地圖

 更新時(shí)間:2020年06月01日 09:54:56   作者:其實(shí)還好啦  
這篇文章主要介紹了基于Python繪制個(gè)人足跡地圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

前兩年,足跡地圖小程序風(fēng)靡朋友圈,一時(shí)間大家都流行曬自己的旅行地圖。但是,筆者最近體驗(yàn)了好幾款足跡地圖的小程序,發(fā)現(xiàn)這些小程序雖然號(hào)稱(chēng)是足跡地圖,但最多只是展示到省級(jí)別,無(wú)法精確到市級(jí)別,因此,筆者周末花了點(diǎn)時(shí)間,用Python來(lái)繪制自己的個(gè)人足跡地圖,可以精確到市級(jí)別。

下面的部分,筆者將介紹如何簡(jiǎn)單地來(lái)繪制個(gè)人足跡地圖。

首先我們需要安裝以下Python的第三方模塊:

echarts-china-cities-pypkg==0.0.9
echarts-china-provinces-pypkg==0.0.3
pyecharts==1.6.2
PyYAML==5.3.1

本項(xiàng)目的完整結(jié)構(gòu)如下:

  我們?cè)陧?xiàng)目中采用YAML文件來(lái)配置自己旅行過(guò)的省以及省下面的市,筆者的配置文件如下:

北京:
 - 延慶區(qū)
 - 昌平區(qū)
 - 海淀區(qū)
 - 東城區(qū)
 - 西城區(qū)
 - 大興區(qū)
 - 朝陽(yáng)區(qū)
上海:
 - 嘉定區(qū)
 - 青浦區(qū)
 - 松江區(qū)
 - 寶山區(qū)
 - 閔行區(qū)
 - 奉賢區(qū)
 - 浦東新區(qū)
 - 崇明區(qū)
 - 徐匯區(qū)
 - 黃浦區(qū)
 - 靜安區(qū)
 - 楊浦區(qū)
 - 虹口區(qū)
 - 金山區(qū)
 - 長(zhǎng)寧區(qū)
 - 普陀區(qū)
天津:
 - 濱海新區(qū)
 - 南開(kāi)區(qū)
 - 河西區(qū)
 - 和平區(qū)
河北:
 - 保定市
 - 廊坊市
山東:
 - 煙臺(tái)市
 - 青島市
江蘇:
 - 南京市
 - 蘇州市
 - 揚(yáng)州市
 - 鎮(zhèn)江市
 - 無(wú)錫市
浙江:
 - 杭州市
 - 紹興市
 - 寧波市
 - 舟山市
 - 湖州市
 - 嘉興市
 - 臺(tái)州市
 - 金華市
江西:
 - 南昌市
 - 九江市
安徽:
 - 黃山市
湖北:
 - 武漢市
湖南:
 - 長(zhǎng)沙市
海南:
 - ??谑?
 - 三亞市
四川:
 - 成都市
廣東:
 - 湛江市

 接著我們利用Python腳本來(lái)生成足跡地圖。先是全國(guó)地圖,用于顯示省和直轄市的情況,china_map.py的代碼如下:

g: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/5/31 9:21 上午
# 繪制個(gè)人足跡地圖:全國(guó)范圍
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' 只顯示全國(guó)直轄市和省級(jí)
map = Map(init_opts=opts.InitOpts(width='1200px', height='800px'))
map.set_global_opts(
  title_opts=opts.TitleOpts(title="個(gè)人足跡地圖"),
  visualmap_opts=opts.VisualMapOpts(max_=1, is_piecewise=True,
                   pieces=[
                    {"max": 1, "min": 1, "label": "去過(guò)", "color": "#4EA397"},
                    {"max": 0, "min": 0, "label": "未去過(guò)", "color": "#FFFFFF"},
                    ]) #最大數(shù)據(jù)范圍,分段
                   )
map.add("個(gè)人足跡地圖", data_pair=province_dict.items(), maptype="china", is_roam=True)
map.render('全國(guó).html')

運(yùn)行上述腳本,會(huì)生成全國(guó).html。為了保證圖片居中顯示,我們對(duì)該HTML中的下面一行:

<div id="a438407081634ceab6af1c965034ae16" class="chart-container" style="width:1200px; height:800px;"></div>

的樣式(style)增加如下內(nèi)容:

margin:auto;top:30px

全國(guó)范圍的足跡地圖效果圖如下:

個(gè)人足跡地圖——全國(guó)

接著,我們來(lái)生成每個(gè)省市的足跡地圖,利用province_map.py腳本,代碼如下:

# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/5/31 10:01 上午
# 繪制個(gè)人足跡地圖:省市范圍
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="個(gè)人足跡地圖-%s" % province),
    visualmap_opts=opts.VisualMapOpts(max_=1, is_piecewise=True,
                     pieces=[
                      {"max": 1, "min": 1, "label": "去過(guò)", "color": "#4EA397"},
                      {"max": 0, "min": 0, "label": "未去過(guò)", "color": "#FFFFFF"},
                      ]) #最大數(shù)據(jù)范圍,分段
                     )
  city_dict = dict(zip(cities, [1]*len(cities)))
  map.add("個(gè)人足跡地圖-%s" % province, data_pair=city_dict.items(), maptype=province, is_roam=True)
  map.render('./provinces/%s.html' % province)
  print("生成個(gè)人足跡地圖-%s 成功" % province)

這時(shí),會(huì)在provinces目錄下生成每個(gè)省或者直轄市的足跡地圖,我們分別對(duì)每個(gè)HTML進(jìn)行修改,保證圖片居中。我們?cè)谶@里只展示三個(gè)省市的情況:

個(gè)人足跡地區(qū)——海南

個(gè)人足跡地圖——江蘇

個(gè)人足跡地圖——浙江

最后一步,也是最為關(guān)鍵的一步,就是我們要打通全國(guó)足跡地圖和每個(gè)省市足跡地圖的聯(lián)系,也就是說(shuō),我們點(diǎn)擊全國(guó)足跡地圖上去過(guò)的省份,那么可以點(diǎn)擊進(jìn)去查看該省市下的足跡地圖情況,比如說(shuō)去過(guò)哪些市。

對(duì)此,我們修改生成的全國(guó).html文件,假設(shè)該地圖的圖像句柄為chart_a438407081634ceab6af1c965034ae16,那么在最后的<script>對(duì)中添加內(nèi)容如下:(確保點(diǎn)擊去過(guò)的省份,可以查看該省市的足跡地圖)

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;
          }

      }
   });

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3中多線程編程的隊(duì)列運(yùn)作示例

    Python3中多線程編程的隊(duì)列運(yùn)作示例

    這篇文章主要介紹了Python3中多線程編程的隊(duì)列運(yùn)作示例,文中用一個(gè)簡(jiǎn)單的例子展示了Python下嘗試多線程時(shí)隊(duì)列的進(jìn)站出站是如何運(yùn)作的,需要的朋友可以參考下
    2015-04-04
  • Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能示例

    Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的下載網(wǎng)頁(yè)源碼功能,涉及Python基于http請(qǐng)求與響應(yīng)實(shí)現(xiàn)的網(wǎng)頁(yè)源碼讀取功能相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Python定時(shí)庫(kù)Apscheduler的簡(jiǎn)單使用

    Python定時(shí)庫(kù)Apscheduler的簡(jiǎn)單使用

    Apscheduler是基于Quartz的Python定時(shí)任務(wù)框架,功能上跟Quartz一致,使用上跟Quartz也幾乎一致。下面通過(guò)本文給大家介紹Python定時(shí)庫(kù)Apscheduler的簡(jiǎn)單使用,感興趣的朋友一起看看吧
    2021-11-11
  • python爬蟲(chóng)使用scrapy注意事項(xiàng)

    python爬蟲(chóng)使用scrapy注意事項(xiàng)

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲(chóng)使用scrapy注意事項(xiàng)的相關(guān)文章,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • 詳解Selenium+PhantomJS+python簡(jiǎn)單實(shí)現(xiàn)爬蟲(chóng)的功能

    詳解Selenium+PhantomJS+python簡(jiǎn)單實(shí)現(xiàn)爬蟲(chóng)的功能

    這篇文章主要介紹了詳解Selenium+PhantomJS+python簡(jiǎn)單實(shí)現(xiàn)爬蟲(chóng)的功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python tornado修改log輸出方式

    python tornado修改log輸出方式

    今天小編就為大家分享一篇python tornado修改log輸出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python+Pygame實(shí)現(xiàn)懷舊游戲飛機(jī)大戰(zhàn)

    Python+Pygame實(shí)現(xiàn)懷舊游戲飛機(jī)大戰(zhàn)

    第一次見(jiàn)到飛機(jī)大戰(zhàn)是在小學(xué)五年級(jí)下半學(xué)期的時(shí)候,這個(gè)游戲中可以說(shuō)包含了幾乎所有我目前可接觸到的pygame知識(shí)。本文就來(lái)利用Pygame實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,需要的可以參考一下
    2022-11-11
  • python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)

    python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • Python實(shí)現(xiàn)簡(jiǎn)單http服務(wù)器

    Python實(shí)現(xiàn)簡(jiǎn)單http服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單http服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Pandas使用分隔符或正則表達(dá)式將字符串拆分為多列

    Pandas使用分隔符或正則表達(dá)式將字符串拆分為多列

    本文主要介紹了Pandas使用分隔符或正則表達(dá)式將字符串拆分為多列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評(píng)論