佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法

一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法

熱門標(biāo)簽:百度AI接口 語音系統(tǒng) Win7旗艦版 電話運營中心 呼叫中心市場需求 客戶服務(wù) 硅谷的囚徒呼叫中心 企業(yè)做大做強

本文主要介紹了Pyecharts地理數(shù)據(jù)可視化,分享給大家,具體如下:

一、Pyecharts簡介和安裝

1. 簡介

Echarts 是一個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可。而 Python 是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時,pyecharts 誕生了。

  • 簡潔的 API 設(shè)計,使用如絲滑般流暢,支持鏈?zhǔn)秸{(diào)用
  • 囊括了 30+ 種常見圖表,應(yīng)有盡有
  • 支持主流 Notebook 環(huán)境,Jupyter Notebook 和 JupyterLab
  • 可輕松集成至 Flask,Sanic,Django 等主流 Web 框架
  • 高度靈活的配置項,可輕松搭配出精美的圖表
  • 詳細(xì)的文檔和示例,幫助開發(fā)者更快的上手項目
  • 多達(dá) 400+ 地圖文件,并且支持原生百度地圖,為地理數(shù)據(jù)可視化提供強有力的支持

pyecharts版本v0.5.x 和 v1 間不兼容,v1 是一個全新的版本,語法也有很大不同。

2. 安裝

安裝pyecharts

pip install pyecharts -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
import pyecharts
print(pyecharts.__version__)     # 查看當(dāng)前pyecharts版本

安裝相關(guān)的地圖擴(kuò)展包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-countries-pypkg  		# 全球國家地圖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-china-provinces-pypkg  # 中國省級地圖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-china-cities-pypkg   # 中國市級地圖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple echarts-china-counties-pypkg  # 中國縣區(qū)級地圖

二、地圖可視化

1. 世界地圖

利用 Starbucks.csv 中的數(shù)據(jù),首先計算每個國家(Country)對應(yīng)的門店數(shù)量,然后使用世界地圖可視化展示星巴克門面店在全球的數(shù)量分布。

# -*- coding: UTF-8 -*-
"""
@File  :demo1.py
@Author :葉庭云
@CSDN  :https://yetingyun.blog.csdn.net/
"""
import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.globals import ThemeType, CurrentConfig

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

# pandas讀取csv文件里的數(shù)據(jù)
df = pd.read_csv("Starbucks.csv")['Country']
# 統(tǒng)計各個地區(qū)星巴克門店數(shù)量
data = df.value_counts()
datas = [(i, int(j)) for i, j in zip(data.index, data.values)]


# 實例化一個Map對象
map_ = Map(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
# 世界地圖
map_.add("門店數(shù)量", data_pair=datas, maptype="world")
map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 不顯示label
map_.set_global_opts(
   title_opts=opts.TitleOpts(title="星巴克門店數(shù)量在全球分布", pos_left='40%', pos_top='10'),  # 調(diào)整title位置
   legend_opts=opts.LegendOpts(is_show=False),
   visualmap_opts=opts.VisualMapOpts(max_=13608, min_=1, is_piecewise=True,
   pieces=[{"max": 9, "min": 1, "label": "1-9", "color": "#00FFFF"},    # 分段 添加圖例注釋和顏色
     {"max": 99, "min": 10, "label": "10-99", "color": "#A52A2A"},
     {"max": 499, "min": 100, "label": "100-499", "color": "#0000FF	"},
     {"max": 999, "min": 500, "label": "500-999", "color": "#FF00FF"},
     {"max": 2000, "min": 1000, "label": "1000-2000", "color": "#228B22"},
     {"max": 3000, "min": 2000, "label": "2000-3000", "color": "#FF0000"},
     {"max": 20000, "min": 10000, "label": ">=10000", "color": "#FFD700"}
       ])
   )

# 渲染在網(wǎng)頁上
map_.render('星巴克門店在全球的分布.html')

運行效果如下:

2. 國家地圖

漣漪散點圖

利用 china.csv 中的數(shù)據(jù),首先計算每個城市(City)對應(yīng)的門店數(shù)量,然后使用 pyecharts 包內(nèi) Geo 模塊繪制星巴克門面店在中國各城市的數(shù)量分布的漣漪散點地圖。

import pandas as pd
from pyecharts.globals import ThemeType, CurrentConfig, GeoType
from pyecharts import options as opts
from pyecharts.charts import Geo

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'
# pandas讀取csv文件數(shù)據(jù)
df = pd.read_csv("china.csv")['City']
data = df.value_counts()

datas = [(i, int(j)) for i, j in zip(data.index, data.values)]
print(datas)

geo = Geo(init_opts=opts.InitOpts(width='1000px', height='600px', theme=ThemeType.DARK))
geo.add_schema(maptype='china', label_opts=opts.LabelOpts(is_show=True))  # 顯示label 省名
geo.add('門店數(shù)量', data_pair=datas, type_=GeoType.EFFECT_SCATTER, symbol_size=8)
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(title_opts=opts.TitleOpts(title='星巴克門店在中國的分布'),
          visualmap_opts=opts.VisualMapOpts(max_=550, is_piecewise=True,
          pieces=[{"max": 50, "min": 0, "label": "0-50", "color": "#708090"},    # 分段 添加圖例注釋 和顏色
               {"max": 100, "min": 51, "label": "51-100", "color": "#00FFFF"},
               {"max": 200, "min": 101, "label": "101-200", "color": "#00008B"},
               {"max": 300, "min": 201, "label": "201-300", "color": "#8B008B"},
               {"max": 600, "min": 500, "label": "500-600", "color": "#FF0000"},
                 ])
          )

geo.render("星巴克門店在中國的分布.html")

運行效果如下:

動態(tài)軌跡圖

# -*- coding: UTF-8 -*-
"""
@File  :demo3.py
@Author :葉庭云
@CSDN  :https://yetingyun.blog.csdn.net/
"""
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType, CurrentConfig, ThemeType

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'
# 鏈?zhǔn)秸{(diào)用
c = (
  Geo()
  .add_schema(
    maptype="china",
    itemstyle_opts=opts.ItemStyleOpts(color="#323c48", border_color="#111"),
    label_opts=opts.LabelOpts(is_show=True)
  )
  .add(
    "",
    [("廣州", 55), ("北京", 66), ("杭州", 77), ("重慶", 88), ('成都', 100), ('???, 80)],
    type_=ChartType.EFFECT_SCATTER,
    color="white",
  )
  .add(
    "",
    [("廣州", "上海"), ("廣州", "北京"), ("廣州", "杭州"), ("廣州", "重慶"),
     ('成都', '海口'), ('???, '北京'), ('???, '重慶'), ('重慶', '上海')
     ],
    type_=ChartType.LINES,
    effect_opts=opts.EffectOpts(
      symbol=SymbolType.ARROW, symbol_size=6, color="blue" # 軌跡線藍(lán)色
    ),
    linestyle_opts=opts.LineStyleOpts(curve=0.2), # 軌跡線彎曲度
  )
  .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  .set_global_opts(title_opts=opts.TitleOpts(title="動態(tài)軌跡圖"))
  .render("geo_lines_background.html")
)

運行效果如下:

3. 省市地圖

熱力圖

# -*- coding: UTF-8 -*-
"""
@File  :demo4.py
@Author :葉庭云
@CSDN  :https://yetingyun.blog.csdn.net/
"""
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
from pyecharts.globals import GeoType, CurrentConfig

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'

c = (
  Geo()
  .add_schema(maptype="廣東", label_opts=opts.LabelOpts(is_show=True))
  .add(
    "熱力圖",
    [list(z) for z in zip(Faker.guangdong_city, Faker.values())],
    type_=GeoType.HEATMAP,
  )
  .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
  .set_global_opts(
    visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-廣東地圖")
  )
  .render("geo_guangdong.html")
)

運行效果如下:

地圖上批量添加經(jīng)緯度數(shù)據(jù)

數(shù)據(jù)來源于美團(tuán)網(wǎng)成都地區(qū)酒店信息,利用其中酒店的經(jīng)緯度數(shù)據(jù),批量添加在地圖上可視化。

# -*- coding: UTF-8 -*-
"""
@File  :demo5.py
@Author :葉庭云
@CSDN  :https://yetingyun.blog.csdn.net/
"""
import pandas as pd   
from pyecharts.charts import Geo  
from pyecharts import options as opts  
from pyecharts.globals import GeoType, CurrentConfig, ThemeType

CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/'
# 讀取Excel數(shù)據(jù) 數(shù)據(jù)來源美團(tuán)網(wǎng)酒店信息
df = pd.read_excel("hotel.xlsx")

# 獲取 地點 經(jīng)緯度信息
geo_sight_coord = {df.iloc[i]['酒店地址']: [df.iloc[i]['經(jīng)度'], df.iloc[i]['緯度']] for i in range(len(df))}
data = [(df['酒店地址'][j], f"{int(df['最低價'][j])}元(最低價)") for j in range(len(df))]
# print(data)
# print(geo_sight_coord)

# 實例化Geo對象 導(dǎo)入成都地圖
g = Geo(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION, width="1000px", height="600px"))
g.add_schema(maptype="成都")

for k, v in list(geo_sight_coord.items()):
  # 添加地址、經(jīng)緯度數(shù)據(jù)
  g.add_coordinate(k, v[0], v[1])

# 生成漣漪散點圖
g.add("", data_pair=data, type_=GeoType.EFFECT_SCATTER, symbol_size=6)
g.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
g.set_global_opts(title_opts=opts.TitleOpts(title="成都-酒店地址分布"))
g.render("酒店地址分布.html")

運行效果如下:

到此這篇關(guān)于一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法的文章就介紹到這了,更多相關(guān)Pyecharts地理數(shù)據(jù)可視化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pyecharts在數(shù)據(jù)可視化中的應(yīng)用詳解
  • 利用pyecharts讀取csv并進(jìn)行數(shù)據(jù)統(tǒng)計可視化的實現(xiàn)
  • python使用pyecharts庫畫地圖數(shù)據(jù)可視化的實現(xiàn)
  • Flask和pyecharts實現(xiàn)動態(tài)數(shù)據(jù)可視化
  • Python數(shù)據(jù)可視化 pyecharts實現(xiàn)各種統(tǒng)計圖表過程詳解
  • Python 數(shù)據(jù)可視化pyecharts的使用詳解

標(biāo)簽:海南 喀什 安康 崇左 山西 山西 長沙 濟(jì)南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    河南省| 富平县| 鄄城县| 桑日县| 德阳市| 津市市| 岳池县| 海门市| 金平| 聂拉木县| 上栗县| 迁安市| 郁南县| 正蓝旗| 淮滨县| 莆田市| 新龙县| 安塞县| 新巴尔虎右旗| 南京市| 菏泽市| 黄平县| 万山特区| 陕西省| 武功县| 清徐县| 石狮市| 淄博市| 周宁县| 辽阳县| 萨迦县| 兰溪市| 屏边| 安乡县| 梅州市| 苍山县| 惠州市| 霍城县| 靖江市| 台前县| 西城区|