python 地理信息

阅读: 评论:0

python 地理信息

python 地理信息

在python中,我们通常使用seaborn或者matplotlib来进行数据的可视化。但在涉及到地理位置信息的可视化问题时,python中的geopandas模块可以帮助我们更加快速的生成想要的图片。

这里我们以geopandas内置的世界数据为例

首先导入所需的包,读取世界数据:

import geopandas as gpimport foliumimport matplotlib.pyplot as pltfrom cartopy import crs as ccrs%matplotlib inlinegp_world = gp.read_file(_path('naturalearth_lowres'))#首先观察数据的前几行gp_world.head()

世界数据

读取城市数据:gp_cities = gp.read_file(_path('naturalearth_cities'))gp_cities.head()

城市数据

绘制出世界地图:

ax = gp_world.plot()

世界地图

绘制除去南极洲外的数据:mask = (gp_world['name'] != 'Antarctica') & (gp_world['pop_est'] > 0)gp_world = gp_world[mask]ax = gp_world.plot()

世界地图(除南极洲)

绘制世界人口分布:

fig, ax = plt.subplots(figsize=(9, 9))ax = gp_world.plot(ax=ax, column='pop_est')

世界人口分布

绘制世界人均GDP:#计算人均GDPgp_world['gdp_per_cap'] = gp_world.gdp_md_est / gp_world.pop_estfig, ax = plt.subplots(figsize=(12, 12))ax = gp_world.plot(ax=ax, column='gdp_per_cap', cmap='inferno_r', edgecolor='k', lw=0.2)#关闭坐标轴ax.axis('off')plt.show()

世界人均GDP分布

绘制国家轮廓及城市地理位置:

fig, ax = plt.subplots(figsize=(12, 12))#画出国家的轮廓ax = gp_world.plot(ax=ax, color='w', edgecolor='#aaaaaa', lw=1)#画出城市的位置ax = gp_cities.plot(ax=ax, color='none', edgecolor='#003366', lw=2, alpha=0.7)#关闭坐标轴ax.axis('off')plt.show()

城市与国家

将两个数据集合并,绘制出城市分布:#将两个数据集合并gp_cities_countries = gp.sjoin(gp_cities, gp_world, how='inner', op='within')fig, ax = plt.subplots(figsize=(12, 12))ax = gp_world.plot(ax=ax, color='#eeeeee', edgecolor='#999999', lw=1)ax = gp_cities_countries.plot(ax=ax, column='gdp_per_cap', cmap='inferno_r', edgecolor='k', lw=1, alpha=0.8)ax.axis('off')plt.show()

合并后的城市与国家

使用不同的colormap绘图:

cmaps = ['viridis', 'plasma', 'inferno', 'YlOrRd', 'YlGnBu', 'summer', 'autumn', 'bone', 'RdPu']fig, axes = plt.subplots(3, 3, figsize=(12, 8), facecolor='#333333')for cmap, ax in zip(cmaps, axes.flatten()): ax = gp_world.plot(ax=ax, cmap=cmap) ax.set_title(cmap, color='w') ax.axis('off')plt.show()

不同的colormap效果

通过观察数据集,我们可以看到geopandas模块主要是通过geometry这一特征来进行地图的绘制。其中主要的类有Point,LineString,Polygon,MultiPoint,MultiLineString,MultiPolygon等。

当我们拿到一个涉及经纬信息的数据集时,我们就可以构造geometry,来进行信息的可视化

例如:ry import Pointlng = housing_plot['longitude']lat= housing_plot['latitude']pts = gpd.GeoSeries([Point(x, y) for x, y in zip(lng, lat)])pts.plot(markersize=0.1)

绘制数据信息

然后也可以将上图与地图相结合:

数据+地图

加州的top1000房价地理位置

本文发布于:2024-02-05 03:11:26,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722639462474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地理信息   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23