python地图散点图_在地图上叠加散点图(img)
好吧,這個問題是老問題,但我有一個不同的答案,可能會有人感興趣。。。在
我一直在研究同一個問題。GitHub(https://github.com/ageron/handson-ml.git)上提供的代碼可以滿足您的需要(請參見02“端到端機器學習”)_項目.ipynb). 在
但是,該代碼使用加利福尼亞地圖作為圖像,并在其頂部繪制點。另一種方法是建立一個真實的地圖,并在地圖上標出點,而不必閱讀ma圖像。為此,我使用了下面的代碼。您將需要install cartopy,如果您還需要郡線,則必須使用here中的說明繪制它們。在
最后,生成的圖像是:
下面是我使用的代碼:# Trying to use a real map
import cartopy.crs as ccrs
import cartopy.feature as cfeature
plt.figure(figsize=(10,7))
# Creates the map
ca_map = plt.axes(projection=ccrs.PlateCarree())
ca_map.add_feature(cfeature.LAND)
ca_map.add_feature(cfeature.OCEAN)
ca_map.add_feature(cfeature.COASTLINE)
ca_map.add_feature(cfeature.BORDERS, linestyle=':')
ca_map.add_feature(cfeature.LAKES, alpha=0.5)
ca_map.add_feature(cfeature.RIVERS)
ca_map.add_feature(cfeature.STATES.with_scale('10m'))
# To add county lines
import cartopy.io.shapereader as shpreader
reader = shpreader.Reader('datasets/housing/countyl010g.shp')
counties = list(reader.geometries())
COUNTIES = cfeature.ShapelyFeature(counties, ccrs.PlateCarree())
ca_map.add_feature(COUNTIES, facecolor='none', edgecolor='gray')
ca_map.xaxis.set_visible(True)
ca_map.yaxis.set_visible(True)
# Plots the data onto map
plt.scatter(housing['longitude'], housing['latitude'], alpha=0.4,
s=housing["population"]/100, label="population",
c=housing['median_house_value'],
cmap=plt.get_cmap("jet"),
transform=ccrs.PlateCarree())
# Colorbar
prices = housing["median_house_value"]
tick_values = np.linspace(prices.min(), prices.max(), 11)
cbar = plt.colorbar()
cbar.ax.set_yticklabels(["$%dk"%(round(v/1000)) for v in tick_values], fontsize=14)
cbar.set_label('Median House Value', fontsize=16)
# Plot labels
plt.ylabel("Latitude", fontsize=14)
plt.xlabel("Longitude", fontsize=14)
plt.legend()
save_fig("housing_prices_scatterplot_cartopy")
這里的優勢是使用真實的地圖,現在這個代碼可以很容易地在世界上任何你想使用的地方更改。玩得高興!在
總結
以上是生活随笔為你收集整理的python地图散点图_在地图上叠加散点图(img)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 从入门到实践_Python
- 下一篇: 爱奇艺播放器安卓版下载(播放器安卓版下载