Python視覺化-縣市按經緯度座標在地圖示記數值
一、資料檔案準備
1、Info.csv
name,val,lat,lon
南京 ,4.23,32.04,118.78
徐州 ,4.13,34.26,117.2
睢寧 ,4.13,33.89,117.94
沛縣 ,4.1,34.73,116.93
豐縣 ,4.1,34.79,116.57
邳縣 ,4.1,34.3,117.97
銅山 ,4.1,34.26,117.2
新沂 ,4.1,34.38,118.33
淮安 ,4.2,33.5,119.15
楚州,4.2,33.5,119.13
淮陰 ,4.1,33.62,119.02
漣水 ,4.1,33.77,119.26
新興,4.05,33.46,120.09
步鳳,4.05,33.34,120.32
鹽城 ,4.1,33.38,120.13
阜寧 ,4.05,33.78,119.79
濱海 ,4.05,34.01,119.84
東臺 ,4.05,32.84,120.31
鹽都,4.05,33.33,120.15
建湖 ,4.05,33.46,119.77
射陽 ,4.1,33.77,120.26
大豐 ,4.1,33.19,120.45
宿遷 ,4.17,33.96,118.3
泗洪 ,4.17,33.46,118.23
沭陽 ,4.1,34.12,118.79
宿城,4.1,33.97,118.25
宿豫,4.1,33.95,118.32
泗洪 ,4.1,33.46,118.23
泰州 ,4.2,32.49,119.9
揚州 ,4.37,32.39,119.42
南通 ,4.15,32.01,120.86
如皋 ,4.15,32.39,120.56
海門 ,4.15,31.89,121.15
啟東 ,4.15,31.8,121.66
海安 ,4.2,32.57,120.45
海安 ,4.2,32.57,120.45
通州,4.23,32.08,121.07
連雲港 ,4.1,34.59,119.16
灌雲 ,4.1,34.3,119.23
東海 ,4.1,34.54,118.75
贛榆 ,4.1,34.83,119.11
灌南 ,4.1,34.09,119.36
鎮江 ,4.4,32.2,119.44
無錫 ,4.29,31.59,120.29
蘇州 ,4.29,31.32,120.62
常州 ,4.29,31.79,119.95
崑山 ,4.29,31.39,120.95
第一列是城市名稱,第二列是數值,第三四列是城市對應的真實緯度和經度。2、CHN_adm/CHN_adm3
需要下載CHN_adm這個壓縮檔案,使用其畫出地圖,可以自行下載或者:
在這下載:https://download.csdn.net/download/mikasa3/10371748
二、匯入模組包
可參考Windows下安裝Python、matplotlib包 及相關
https://blog.csdn.net/mikasa3/article/details/78942650
1、numpy
2、pandas
3、matplotlib
4、Basemap
三、完整程式碼
如下:
# coding=utf-8
import csv
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
def DrawPointMap(file_name):
fig = plt.figure()
ax1 = fig.add_axes([0.1,0.1,0.8,0.8])#[left,bottom,width,height]
map = Basemap(projection='mill',lat_0=36,lon_0=122,\
llcrnrlat=30.5 ,urcrnrlat=35.3,llcrnrlon=116.2,urcrnrlon=121.99,\
ax=ax1,rsphere=6371200.,resolution='h',area_thresh=1000000)
shp_info = map.readshapefile('CHN_adm/CHN_adm3','states',drawbounds=False)
for info, shp in zip(map.states_info, map.states):
proid = info['NAME_1']
if proid == 'Jiangsu':
poly = Polygon(shp,facecolor='w',edgecolor='k', lw=1.0, alpha=0.1)#注意設定透明度alpha,否則點會被地圖覆蓋
ax1.add_patch(poly)
parallels = np.arange(30.6,35.3,2)
map.drawparallels(parallels,labels=[1,0,0,0],fontsize=10) #parallels
meridians = np.arange(116.3,122,2)
map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10) #meridians
posi = pd.read_csv(file_name)
lat = np.array(posi["lat"][0:48])#獲取經緯度座標,一共有48個資料
lon = np.array(posi["lon"][0:48])
val = np.array(posi["val"][0:48],dtype=float)#獲取數值
size = (val-np.min(val)+0.05)*800#對點的數值作離散化,使得大小的顯示明顯
x,y = map(lon,lat)
map.scatter(x, y, s=size, color = 'r') #要標記的點的座標、大小及顏色
for i in range(0,47):
plt.text(x[i]+5000,y[i]+5000,str(val[i]))
#plt.text(lat[i],lon[i],str(val[i]), family='serif', style='italic', ha='right', wrap=True)
#plt.annotate(s=3.33,xy=(x,y),xytext=None, xycoords='data',textcoords='offset points', arrowprops=None,fontsize=16)
map.drawmapboundary() #邊界線
#map.fillcontinents()
map.drawstates()
#map.drawcoastlines() #海岸線
map.drawcountries()
map.drawcounties()
plt.title('Jiangsu in CHINA')#標題
plt.savefig('Jiangsu.png', dpi=100, bbox_inches='tight')#檔案命名為Jiangsu.png儲存
plt.show()
if __name__=='__main__':
DrawPointMap("Info.csv")
四、執行結果
如圖:
相關文章
- iOS中地圖經緯度座標轉換iOS地圖
- asp.net系統中根據經緯度座標,直接呼叫google地圖,顯示位置ASP.NETGo地圖
- 關於如何使用echarts實現市縣區地圖的視覺化Echarts地圖視覺化
- 如何使用Python經緯座標模組?Python
- 如何快速將地址解析為經緯度座標?
- ArcEngine下投影座標和經緯度座標的相互轉換
- Python視覺化-地圖染色Python視覺化地圖
- 根據經緯度座標查詢最近的門店
- java百度地圖介面呼叫獲取經緯度Java地圖
- iOS-百度地圖螢幕所顯示範圍內的經緯度iOS地圖
- Cesium 滑鼠拾取橢球、地形、模型座標點(經度+緯度+高程)模型
- 未經投影的地理座標系如何顯示為平面地圖地圖
- JN專案-百度地圖座標偏移地圖
- 全國省市區縣和鄉鎮街道行政區劃向量邊界座標經緯度地圖最新資料免費下載 支援shp geojson json sql格式地圖JSONSQL
- 百度地圖框選標註座標點功能地圖
- 百度地圖之標註一組地理座標地圖
- [資料分析與視覺化] Python繪製資料地圖2-GeoPandas地圖視覺化視覺化Python地圖
- 百度地圖根據經緯度計算瓦片行列號地圖
- 獲取資料庫中到指定經緯度距離的座標資料庫
- 根據經緯度座標獲得省市區縣行政區劃城市名稱,自建資料庫 java python php c# .net 均適用資料庫JavaPythonPHPC#
- 百度地圖:根據位置獲取座標地圖
- iOS根據兩點經緯度座標計算指南針方位角iOS
- uniapp使用高德地圖解析經緯度轉為中文地址APP地圖圖解
- iOS根據地址在地圖上展示座標iOS地圖
- vue地圖視覺化 Cesium篇Vue地圖視覺化
- 常用經緯度轉換為ntu經緯度
- 勾勒產業緯度與時代經度:座標杜拜,UBBF2021“聯接+新增長”產業
- openlayers根據座標在地圖上劃區域地圖
- 視覺化三維地圖怎麼做?視覺化工具中的地圖工具視覺化地圖
- 分割結果視覺化,把標籤mask輪廓顯示在原圖上視覺化
- 百度地圖API : 自定義標註圖示地圖API
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值Java
- js根據經緯度,獲取省市區。(百度地圖逆地址解析)JS地圖
- Java根據地理位置獲取經緯度(呼叫百度地圖API)Java地圖API
- ArcGIS API for Silverlight 中根據座標點在地圖上打標記API地圖
- Web墨卡託座標與WGS84經緯度互轉 java程式碼WebJava
- springboot + mongodb 通過經緯度座標匹配平面區域的方法YWKSSpring BootMongoDB
- vue地圖視覺化 ArcGIS篇(3)Vue地圖視覺化