利用pyecharts繪制地理散點(diǎn)圖
1.背景
利用上海市7000+辦公樓項(xiàng)目,包括項(xiàng)目名稱,地理位置,每天的租金,建筑面積和項(xiàng)目所在的商圈,現(xiàn)在要讓這些項(xiàng)目按經(jīng)緯度落位到地圖上去,并且按顏色顯示租金的高低,之前比較多的事操作ArcGIS軟件來做,這一次,準(zhǔn)備試試pyecharts模塊,直接用python腳本生成。

2.效果圖
效果圖大致如下:

3.完整代碼
import pandas as pd #導(dǎo)入數(shù)據(jù)分析模塊
from pyecharts.charts import Geo #導(dǎo)入地理信息處理模塊
from pyecharts import options as opts ?#配置
from pyecharts.render import make_snapshot #快照
from snapshot_selenium import snapshot?
from pyecharts.globals import ChartType, SymbolType #全局配置
data=pd.read_excel("D:\數(shù)有引力\魔都商圈\辦公項(xiàng)目.xlsx") ?#讀取數(shù)據(jù)
geo_sight_coord={data['項(xiàng)目名稱'][i].strip(): [data['經(jīng)度'][i], data['緯度'][i]] for i in range(len(data))} #構(gòu)造位置字典數(shù)據(jù)
data_pair=[(data['項(xiàng)目名稱'][i].strip(), data['日租金'][i]) for i in range(len(data))] #構(gòu)造項(xiàng)目租金數(shù)據(jù)
g=Geo() #地理初始化
g.add_schema(maptype="上海") #限定上海市范圍
for key, value in geo_sight_coord.items(): #對(duì)地理點(diǎn)循環(huán)
? ? g.add_coordinate(key, value[0], value[1]) #追加點(diǎn)位置
g.add("", data_pair, symbol_size=2) #追加項(xiàng)目名稱和租金
g.set_series_opts(label_opts=opts.LabelOpts(is_show=False), type='scatter') ?#星散點(diǎn)圖scatter
pieces = [
? ? ? ? {'max': 3, 'label': '<3', 'color': '#00B2EE'},
? ? ? ? {'min': 3, 'max': 6, '3~6': 'love', 'color': '#71C671'},
? ? ? ? {'min': 6, 'max': 10, '6~10': 'always', 'color': '#CD4F39'},
? ? ? ? {'min': 10, ?'label': '10+', 'color': '#FF0000'} # 有下限無上限
? ? ? ? ?]
g.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=pieces), title_opts=opts.TitleOpts(title="辦公項(xiàng)目分布")) #辦公項(xiàng)目分布圖
make_snapshot(snapshot, g.render("上海市辦公項(xiàng)目.html"), "上海市辦公項(xiàng)目.png") #渲染成html格式和png格式4.代碼解讀
整個(gè)流程包括pandas讀取數(shù)據(jù)和處理,geo生成地圖和向地圖添加數(shù)據(jù),渲染地圖,這里主要介紹處理數(shù)據(jù)兩點(diǎn)
1,項(xiàng)目名稱,項(xiàng)目經(jīng)度,項(xiàng)目緯度三個(gè)字段構(gòu)成一個(gè)字典類型數(shù)據(jù)
geo_sight_coord={data['項(xiàng)目名稱'][i].strip(): [data['經(jīng)度'][i], data['緯度'][i]] for i in range(len(data))}?每個(gè)地理數(shù)據(jù)格式如下:
{"新橋大廈": 121.472534, 31.246122}2,項(xiàng)目租金數(shù)據(jù)通過如下語句構(gòu)造成元組
data_pair=[(data['項(xiàng)目名稱'][i].strip(), data['日租金'][i]) for i in range(len(data))]
每個(gè)項(xiàng)目租金數(shù)據(jù)格式如下:
("新橋大廈": 4.3 )
到此這篇關(guān)于利用pyecharts繪制地理散點(diǎn)圖的文章就介紹到這了,更多相關(guān)pyecharts繪制散點(diǎn)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析python實(shí)現(xiàn)布隆過濾器及Redis中的緩存穿透原理
本文帶你了解了位圖的實(shí)現(xiàn),布隆過濾器的原理及 Python 中的使用,以及布隆過濾器如何應(yīng)對(duì) Redis 中的緩存穿透,相信你對(duì)布隆過濾器已經(jīng)有了一定的認(rèn)識(shí)2021-09-09
python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫
這篇文章主要介紹了python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
python 標(biāo)準(zhǔn)庫原理與用法詳解之os.path篇
os.path模塊主要用于文件的屬性獲取,在編程中經(jīng)常用到,本文將帶你熟悉這個(gè)模塊并掌握它的用法,感興趣的朋友跟小編來看看吧2021-10-10
Python使用Selenium+BeautifulSoup爬取淘寶搜索頁
這篇文章主要為大家詳細(xì)介紹了Python使用Selenium+BeautifulSoup爬取淘寶搜索頁,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法
這篇文章主要介紹了python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01

