地理信息數據可視化(下篇)

上一篇中講了很多地理信息可視化的方案,下面來講能支持地理信息可視化的工具

pyecharts

Echarts 是百度開源的一個數據可視化JS 庫,主要用于數據可視化号坡。pyecharts 是一個用于生成 Echarts 圖表的python類庫,兼容 Python2 和 Python3。
安裝方法很簡單

pip install pyecharts

pyecharts支持地圖繪制峻贮,但是在使用地圖前需要安裝一下適合自己的地圖包

pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg

主要地圖來源于這兩個 Map, Geo

from pyecharts import Map, Geo

先定義一下數據

# 世界地圖數據
value = [95.1, 23.2, 43.3, 66.4, 88.5]
attr= ["China", "Canada", "Brazil", "Russia", "United States"]

# 省和直轄市
province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '遼寧': 12, '江西': 6, '上海': 20, '安徽': 10, '江蘇': 16, '湖南': 9, '浙江': 13, '海南': 2, '廣東': 22, '湖北': 8, '黑龍江': 11, '澳門': 1, '陜西': 11, '四川': 7, '內蒙古': 3, '重慶': 3, '云南': 6, '貴州': 2, '吉林': 3, '山西': 12, '山東': 11, '福建': 4, '青海': 1, '舵主科技,質量保證': 1, '天津': 1, '其他': 1}
provice=list(province_distribution.keys())
values=list(province_distribution.values())

# 城市 -- 指定省的城市 xx市
city = ['鄭州市', '安陽市', '洛陽市', '濮陽市', '南陽市', '開封市', '商丘市', '信陽市', '新鄉(xiāng)市']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]

# 區(qū)縣 -- 具體城市內的區(qū)縣  xx縣
quxian = ['夏邑縣', '民權縣', '梁園區(qū)', '睢陽區(qū)', '柘城縣', '寧陵縣']
values3 = [3, 5, 7, 8, 2, 4]

示例1:世界地圖

map0 = Map("世界地圖示例", width=1200, height=600)
map0.add("世界地圖", attr, value, maptype="world",  is_visualmap=True, visual_text_color='#000')
map0.render(path="./data/04-00世界地圖.html")

示例2:中國地圖

# maptype='china' 只顯示全國直轄市和省級
# 數據只能是省名和直轄市的名稱
map = Map("中國地圖",'中國地圖', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50],  maptype='china', is_visualmap=True,
    visual_text_color='#000')
map.show_config()
map.render(path="./data/04-01中國地圖.html")

示例3:省份地圖

# 河南地圖  數據必須是省內放入城市名
map2 = Map("河南地圖",'河南', width=1200, height=600)
map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="./data/04-02河南地圖.html")

示例4:熱力分布圖

data = [
("海門", 9),("鄂爾多斯", 12),("招遠", 12),("舟山", 12),("齊齊哈爾", 14),("鹽城", 15),
("赤峰", 16),("青島", 18),("乳山", 18),("金昌", 19),("泉州", 21),("萊西", 21),
("日照", 21),("膠南", 22),("南通", 23),("拉薩", 24),("云浮", 24),("梅州", 25)]

attr, value = geo.cast(data)

geo = Geo("全國主要城市空氣質量熱力圖", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

geo.add("空氣質量熱力圖", attr, value, visual_range=[0, 25], type='heatmap',visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="./data/04-04空氣質量熱力圖.html")

示例5:散點圖

# 空氣質量評分
indexs = ['上海', '北京', '合肥', '哈爾濱', '廣州', '成都', '無錫', '杭州', '武漢', '深圳', '西安', '鄭州', '重慶', '長沙']
values = [4.07, 1.85, 4.38, 2.21, 3.53, 4.37, 1.38, 4.29, 4.1, 1.31, 3.92, 4.47, 2.40, 3.60]

geo = Geo("全國主要城市空氣質量評分", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

# type="effectScatter", is_random=True, effect_scale=5  使點具有發(fā)散性
geo.add("空氣質量評分", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 5],visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="./data/04-05空氣質量評分.html")

folium

Folium是建立在Python生態(tài)系統的數據整理(Datawrangling)能力和Leaflet.js庫的映射能力之上的開源庫应闯。用Python處理數據纤控,然后用Folium將它在Leaflet地圖上進行可視化。Folium能夠將通過Python處理后的數據輕松地在交互式的Leaflet地圖上進行可視化展示碉纺。它不單單可以在地圖上展示數據的分布圖船万,還可以使用Vincent/Vega在地圖上加以標記刻撒。
這個開源庫中有許多來自OpenStreetMap、MapQuest Open耿导、MapQuestOpen Aerial声怔、Mapbox和Stamen的內建地圖元件,而且支持使用Mapbox或Cloudmade的API密鑰來定制個性化的地圖元件碎节。Folium支持GeoJSON和TopoJSON兩種文件格式的疊加捧搞,也可以將數據連接到這兩種文件格式的疊加層,最后可使用color-brewer配色方案創(chuàng)建分布圖狮荔。
Folium可以讓你用Python強大生態(tài)系統來處理數據胎撇,然后用Leaflet地圖來展示。Folium內置一些來自OpenStreetMap殖氏、MapQuest Open晚树、MapQuest Open Aerial、Mapbox和Stamen的地圖元件(tilesets)雅采,并且支持用Mapbox或者Cloudmade API keys來自定義地圖元件爵憎。Folium支持GeoJSON和TopJSON疊加(overlays),綁定數據來創(chuàng)造一個分級統計圖(Choropleth map)婚瓜。但是宝鼓,Folium庫繪制熱點圖的時候,需要聯網才可顯示巴刻。
安裝方法也很簡單

pip install folium

示例1:2011年失業(yè)率分布圖

map_2 =folium.Map(location=[40, -99], zoom_start=4)
map_2.geo_json(geo_path=county_geo,data_out='data2.json', data=df,
       columns=['GEO_ID','Unemployment_rate_2011'],
       key_on='feature.id',
       threshold_scale=[0, 5, 7, 9, 11,13],
       fill_color='YlGnBu', line_opacity=0.3,
       legend_name='Unemployment Rate2011 (%)',
      topojson='objects.us_counties_20m')#2011失業(yè)率分布圖
map_2.create_map(path='map_2.html')

示例2:2011年中等家庭收入分布圖

map_3 =folium.Map(location=[40, -99], zoom_start=4)
map_3.geo_json(geo_path=county_geo,data_out='data3.json', data=df,
       columns=['GEO_ID','Median_Household_Income_2011'],
       key_on='feature.id',
       fill_color='PuRd',line_opacity=0.3,
       legend_name='Median Household Income2011 ($)',
      topojson='objects.us_counties_20m')#2011中等家庭收入分布圖
map_3.create_map(path='map_3.html')

使用地理云平臺

例如:http://geohey.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末愚铡,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子胡陪,更是在濱河造成了極大的恐慌沥寥,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柠座,死亡現場離奇詭異邑雅,居然都是意外死亡,警方通過查閱死者的電腦和手機妈经,發(fā)現死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門淮野,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吹泡,你說我怎么就攤上這事录煤。” “怎么了荞胡?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵妈踊,是天一觀的道長。 經常有香客問我泪漂,道長廊营,這世上最難降的妖魔是什么歪泳? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮露筒,結果婚禮上呐伞,老公的妹妹穿的比我還像新娘。我一直安慰自己慎式,他們只是感情好伶氢,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘪吏,像睡著了一般癣防。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掌眠,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天蕾盯,我揣著相機與錄音,去河邊找鬼蓝丙。 笑死级遭,一個胖子當著我的面吹牛,可吹牛的內容都是我干的渺尘。 我是一名探鬼主播挫鸽,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鸥跟!你這毒婦竟也來了丢郊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤锌雀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后迅诬,有當地人在樹林里發(fā)現了一具尸體腋逆,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年侈贷,在試婚紗的時候發(fā)現自己被綠了惩歉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡俏蛮,死狀恐怖撑蚌,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情搏屑,我是刑警寧澤争涌,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站辣恋,受9級特大地震影響亮垫,放射性物質發(fā)生泄漏模软。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一饮潦、第九天 我趴在偏房一處隱蔽的房頂上張望燃异。 院中可真熱鬧,春花似錦继蜡、人聲如沸回俐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仅颇。三九已至,卻和暖如春稻轨,著一層夾襖步出監(jiān)牢的瞬間灵莲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工殴俱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留政冻,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓线欲,卻偏偏與公主長得像甚疟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子渣刷,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354