最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pyecharts繪制全球流向圖的示例代碼

 更新時間:2020年01月08日 14:33:53   作者:wwxxee  
這篇文章主要介紹了Pyecharts繪制全球流向圖的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

安裝

pip(3) install pyecharts

此文版本為v1.6
此文版本為v1.6
此文版本為v1.6

效果圖

效果圖

使用Pycharts繪制一個如上圖類似的全球流向圖。

pyecharts里的地理圖標(biāo)總共有三種—
Geo:地理坐標(biāo)系,Map:地圖,Bmap:百度地圖。
Map地圖可以繪制全球地圖,但不能繪制帶有流向的效果圖,所以此處需要使用Geo地理坐標(biāo)系圖。

Geo圖的類型有scatter(散點(diǎn)圖),effectScatter(漣漪散點(diǎn)圖),heatmap(熱力圖),lines(流向圖)。

散點(diǎn)圖不用說,就是正常的散點(diǎn)圖。漣漪散點(diǎn)圖類似帶有波紋的散點(diǎn)圖,像水的漣漪效果一樣。

效果如下:

漣漪散點(diǎn)圖

熱力圖也不用說,就是正常的熱力圖效果。

我們需要繪制的是流向圖。

# 導(dǎo)入Geo包,注意1.x版本的導(dǎo)入跟0.x版本的導(dǎo)入差別
from pyecharts.charts import Geo
# 導(dǎo)入配置項
from pyecharts import options as opts
# ChartType:圖標(biāo)類型,SymbolType:標(biāo)記點(diǎn)類型
from pyecharts .globals import ChartType, SymbolType

geo = Geo()

# 地圖類型,世界地圖可換為world
geo.add_schema(maptype="china")
# 添加數(shù)據(jù)點(diǎn)
geo.add("",[("北京",10),("上海",20),("廣州",30),("成都",40),("哈爾濱",50)],type_=ChartType.EFFECT_SCATTER)
# 添加流向,type_設(shè)置為LINES,漣漪配置為箭頭,提供的標(biāo)記類型包括 'circle', 'rect', 'roundRect', 'triangle', 
#'diamond', 'pin', 'arrow', 'none'
geo.add("geo-lines",
[("上海","廣州"),
("上海","新疆"),
("上海","哈爾濱"),
("成都","北京"),
("哈爾濱","廣州")],
type_=ChartType.LINES,
effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW,symbol_size=5,color="yellow"),
linestyle_opts=opts.LineStyleOpts(curve=0.2),
    is_large=True)
# 不顯示標(biāo)簽
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 設(shè)置圖標(biāo)標(biāo)題,visualmap_opts=opts.VisualMapOpts()為左下角的視覺映射配置項
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="Geo-Lines"))
# 直接在notebook里顯示圖表
geo.render_notebook()
# 生成html文件,可傳入位置參數(shù)
geo.render("mychart.html")

效果如圖:

效果圖

在繪制國內(nèi)的流向圖的時候是沒有問題的,但是當(dāng)我們把地點(diǎn)換為國際城市或者其他國家的時候就是報錯了。

因為Geo圖的坐標(biāo)引用自pyecharts.datasets.city_coordinates.json。我們打開這和文件可以看到國內(nèi)的城市坐標(biāo)。這個文件里的全部數(shù)據(jù)都是國內(nèi)的城市,當(dāng)我們想繪制全球的流向圖的時候,Geo引用找不到國際地點(diǎn)就i會報錯了。

城市坐標(biāo)

解決辦法有兩個:

1.新增坐標(biāo)點(diǎn)

def add_coordinate(
  # 坐標(biāo)地點(diǎn)名稱
  name: str,
  # 經(jīng)度
  longitude: Numeric,
  # 緯度
  latitude: Numeric,
)
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts .globals import ChartType, SymbolType, GeoType

geo = Geo()

# 新增坐標(biāo)點(diǎn),添加名稱跟經(jīng)緯度
geo.add_coordinate(name="China",longitude=104.195,latitude=35.675)
geo.add_coordinate(name="Australia",longitude=133.775,latitude=-25.274)
geo.add_coordinate(name="Brazil",longitude=-51.925,latitude=-14.235)
geo.add_coordinate(name="South Africa",longitude=22.937,latitude=-30.559)
geo.add_coordinate(name="India",longitude=78.962,latitude=20.593)
geo.add_coordinate(name="Peru",longitude=-75.015,latitude=-9.189)
geo.add_coordinate(name="Iran",longitude=53.688,latitude=32.427)
geo.add_coordinate(name="Ukraine",longitude=31.165,latitude=48.379)
geo.add_coordinate(name="Canada",longitude=-106.346,latitude=56.130)
geo.add_coordinate(name="Mongolia",longitude=103.847,latitude=46.862)
geo.add_coordinate(name="Russia",longitude=37.618,latitude=55.751)
geo.add_coordinate(name="Mauritania",longitude=21.008,latitude=-10.941)
geo.add_coordinate(name="Kazakhstan",longitude=66.924,latitude=48.019)
geo.add_coordinate(name="UAE",longitude=53.848,latitude=23.424)
geo.add_coordinate(name="Malaysia",longitude=101.976,latitude=4.210)
geo.add_coordinate(name="New Zealand",longitude=174.886,latitude=-40.900)
geo.add_coordinate(name="Indonesia",longitude=113.921,latitude=-0.789)
geo.add_coordinate(name="Sweden",longitude=18.643,latitude=60.128)
geo.add_coordinate(name="Mexico",longitude=-102.553,latitude=23.634)
geo.add_coordinate(name="Sierra Leone",longitude=-11.779,latitude=8.461)

# 添加數(shù)據(jù)項
geo.add_schema(maptype="world")
geo.add("",[("Australia",128326),
      ("Brazil",44037),
      ("South Africa",7649),
      ("India",3562),
      ("Peru",2779),
      ("Iran",2698),
      ("Ukrainie",2040),
      ("Canada",1792),
      ("Mongolia",1514),
      ("Russia",1069),
      ("Mauritania",1374),
      ("Kazakhsan",701),
      ("UAE",490),
      ("Malaysia",554),
      ("New Zealand",422),
      ("Indonesia",148),
      ("Sweden",113),
      ("Mexico",121),
      ("Sierra Leone",109),
      ],type_=ChartType.EFFECT_SCATTER)

# 繪制流向
geo.add("流向圖",[
  ("Australia","China"),
  ("Brazil","China"),
  ("South Africa","China"),
  ("India","China"),
  ("Peru","China"),
  ("Iran","China"),
  ("Ukraine","China"),
  ("Canada","China"),
  ("Mongolia","China"),
  ("Russia","China"),
  ("Mauritania","China"),
  ("Kazakhstan","China"),
  ("UAE","China"),
  ("Malaysia","China"),
  ("New Zealand","China"),
  ("Indonesia","China"),
  ("Sweden","China"),
  ("Mexico","China"),
  ("Sierra Leone","China"),
      ],
    type_= GeoType.LINES,
   effect_opts=opts.EffectOpts(symbol=SymbolType.ARROW,symbol_size=5,color="yellow"),
    linestyle_opts=opts.LineStyleOpts(curve=0.2),
    )

geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=130000),title_opts=opts.TitleOpts(title="mygeo"))
geo.render()

效果如下:顏色表示各數(shù)據(jù)點(diǎn)大小。(用線條粗細(xì)表示大小還不知道,知道的盆友可以告訴我)

效果圖

這種添加坐標(biāo)點(diǎn)的辦法太麻煩了,需要手動一個個添加,十分不方便。

2.添加坐標(biāo)點(diǎn)文件。

以JSON文件格式批量新增坐標(biāo)點(diǎn)。

def add_coordinate_json(
  # json 文件格式的坐標(biāo)數(shù)據(jù)
  # 格式如下
  # {
  #  "阿城": [126.58, 45.32],
  #  "阿克蘇": [80.19, 41.09]
  # }
  json_file: str
)

如果我們有一份全球的數(shù)據(jù)坐標(biāo)點(diǎn)文件我們就可以使用這個添加文件的方式批量導(dǎo)入坐標(biāo)點(diǎn)。

geo.add_coordinate_json(json_file="world_country.json")

可以直接用這一步替代添加坐標(biāo)點(diǎn)的步驟。

world_country.json如下圖所示。

world_country

它是一個各個國家的名稱及坐標(biāo)點(diǎn)文件。導(dǎo)入之后就可以添加數(shù)據(jù)項了。

還可以直接把這個文件追加到pyechats.datasets.city_coordinates.json文件里 ,這樣就可以一勞永逸,下次直接寫國家名稱的時候就可以讀取到。

繪制全球流向圖就完成了。

其他細(xì)節(jié)可以參考官方文檔:http://pyecharts.org/#/zh-cn/

渲染成圖片

API:

def make_snapshot(
  # 渲染引擎,可選 selenium 或者 phantomjs
  engine: Any,

  # 傳入 HTML 文件路徑
  file_name: str,

  # 輸出圖片路徑
  output_name: str,

  # 延遲時間,避免圖還沒渲染完成就生成了圖片,造成圖片不完整
  delay: float = 2,

  # 像素比例,用于調(diào)節(jié)圖片質(zhì)量
  pixel_ratio: int = 2,

  # 渲染完圖片是否刪除原 HTML 文件
  is_remove_html: bool = False,

  # 瀏覽器類型,目前僅支持 Chrome, Safari,使用 snapshot-selenium 時有效
  browser: str = "Chrome",
  **kwargs,
)

使用:

from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot


make_snapshot(snapshot,"全球流向.html","流向2.png",delay=5)

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

相關(guān)文章

  • Python從Excel讀取數(shù)據(jù)并使用Matplotlib繪制成二維圖像

    Python從Excel讀取數(shù)據(jù)并使用Matplotlib繪制成二維圖像

    本課程實現(xiàn)使用 Python 從 Excel 讀取數(shù)據(jù),并使用 Matplotlib 繪制成二維圖像。這一過程中,將通過一系列操作來美化圖像,最終得到一個可以出版級別的圖像。本課程對于需要書寫實驗報告,學(xué)位論文,發(fā)表文章,做報告的學(xué)員具有較大價值
    2023-02-02
  • 利用Python實現(xiàn)每日新聞推送

    利用Python實現(xiàn)每日新聞推送

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫簡單的邏輯,通過調(diào)用API接口實現(xiàn)每日新聞推送功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • python實現(xiàn)將元祖轉(zhuǎn)換成數(shù)組的方法

    python實現(xiàn)將元祖轉(zhuǎn)換成數(shù)組的方法

    這篇文章主要介紹了python實現(xiàn)將元祖轉(zhuǎn)換成數(shù)組的方法,涉及Python中l(wèi)ist方法的使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python實戰(zhàn)使用XPath采集數(shù)據(jù)示例解析

    Python實戰(zhàn)使用XPath采集數(shù)據(jù)示例解析

    這篇文章主要為大家介紹了Python實戰(zhàn)之使用XPath采集數(shù)據(jù)實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-04-04
  • Python編程之字符串模板(Template)用法實例分析

    Python編程之字符串模板(Template)用法實例分析

    這篇文章主要介紹了Python編程之字符串模板(Template)用法,結(jié)合具體實例形式分析了Python字符串模板的功能、定義與使用方法,需要的朋友可以參考下
    2017-07-07
  • 我的快遞一個月沒動靜于是趕緊上線python快遞查詢系統(tǒng)

    我的快遞一個月沒動靜于是趕緊上線python快遞查詢系統(tǒng)

    我的快遞在路上走了一個月還沒到,于是自己編寫快遞查詢,文中通過實例代碼截圖的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-09-09
  • 編寫Python腳本來實現(xiàn)最簡單的FTP下載的教程

    編寫Python腳本來實現(xiàn)最簡單的FTP下載的教程

    這篇文章主要介紹了編寫Python腳本來實現(xiàn)最簡單的FTP下載的教程,主要用到了ftplib模塊,無圖形界面...需要的朋友可以參考下
    2015-05-05
  • Python和Golang協(xié)程的區(qū)別

    Python和Golang協(xié)程的區(qū)別

    這篇文章主要為大家介紹了Python和Golang協(xié)程的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Ubuntu安裝Jupyter Notebook教程

    Ubuntu安裝Jupyter Notebook教程

    這篇文章主要為大家詳細(xì)介紹了Ubuntu安裝Jupyter Notebook教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Pygame游戲開發(fā)之太空射擊實戰(zhàn)碰撞改進(jìn)篇

    Pygame游戲開發(fā)之太空射擊實戰(zhàn)碰撞改進(jìn)篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,在本課中,我們將討論如何更改?Pygame?處理精靈之間沖突的方式
    2022-08-08

最新評論

威海市| 靖西县| 银川市| 贵州省| 靖边县| 义乌市| 航空| 浙江省| 江山市| 和田县| 邻水| 安仁县| 娄底市| 芜湖县| 祁阳县| 时尚| 平果县| 尉犁县| 香河县| 双峰县| 庆阳市| 金堂县| 开原市| 黎城县| 浮梁县| 沐川县| 武强县| 芦山县| 乐山市| 天水市| 农安县| 昌乐县| 惠东县| 灵丘县| 汽车| 柳河县| 利辛县| 宜丰县| 芦溪县| 东乌珠穆沁旗| 天峨县|