软件工作室网站模板,丝绸之路网站建设策划书,辽宁省工程招标网,delphi网站开发用Python画出漂亮的地图
地图可视化是数据分析和地理信息系统中的重要环节。Python提供了多个强大的库#xff0c;如Folium、Matplotlib、Geopandas等#xff0c;使得创建漂亮而具有信息量的地图变得简单而灵活。本文将详细介绍如何使用这些库绘制漂亮的地图#xff0c;并提…用Python画出漂亮的地图
地图可视化是数据分析和地理信息系统中的重要环节。Python提供了多个强大的库如Folium、Matplotlib、Geopandas等使得创建漂亮而具有信息量的地图变得简单而灵活。本文将详细介绍如何使用这些库绘制漂亮的地图并提供丰富的示例代码 安装所需库 首先确保已经安装了必要的库。可以使用以下命令安装 pip install folium matplotlib geopandas使用Folium创建交互式地图 Folium是一个基于Leaflet.js的Python库可以轻松创建交互式地图 import folium# 创建地图对象
m folium.Map(location[37.7749, -122.4194], zoom_start12)# 在地图上添加标记
folium.Marker([37.7749, -122.4194], popupSan Francisco).add_to(m)# 保存地图为HTML文件
m.save(interactive_map.html)使用Matplotlib绘制基本地图 Matplotlib也提供了地图绘制的功能 import matplotlib.pyplot as plt
import geopandas as gpd# 读取世界地图数据
world gpd.read_file(gpd.datasets.get_path(naturalearth_lowres))# 绘制世界地图
world.plot()
plt.title(World Map)
plt.show()使用Geopandas绘制更丰富的地图 Geopandas是在Pandas基础上构建的地理数据处理库它简化了地理空间数据的处理和可视化 import geopandas as gpd
import matplotlib.pyplot as plt# 读取世界地图数据
world gpd.read_file(gpd.datasets.get_path(naturalearth_lowres))# 可视化地图
world.plot(columngdp_md_est, cmapOrRd, legendTrue, figsize(15, 10))
plt.title(World Map with GDP)
plt.show()使用Folium绘制热力图 Folium不仅可以创建基本地图还支持绘制热力图展示数据的空间分布 import folium
from folium.plugins import HeatMap# 创建地图对象
m folium.Map(location[37.7749, -122.4194], zoom_start12)# 添加热力图数据点
heat_data [[37.7749, -122.4194] for _ in range(100)]# 添加热力图层
HeatMap(heat_data).add_to(m)# 保存地图为HTML文件
m.save(heatmap.html)绘制带标记的地图 有时候需要在地图上标记特定位置如城市、地标或数据采样点 以下是一个使用Geopandas和Matplotlib绘制带标记的地图的示例 import geopandas as gpd
import matplotlib.pyplot as plt# 读取城市数据
cities gpd.read_file(gpd.datasets.get_path(naturalearth_cities))# 绘制世界地图
world gpd.read_file(gpd.datasets.get_path(naturalearth_lowres))
ax world.plot(figsize(15, 10))# 在地图上添加城市标记
cities.plot(axax, markero, colorred, markersize50)
plt.title(World Map with City Markers)
plt.show()使用Plotly创建交互式地图 Plotly是另一个强大的可视化库支持创建交互式地图 import plotly.express as px# 读取世界地图数据
world px.data.world()# 绘制世界地图
fig px.choropleth(world, locationsiso_alpha, colorpop,hover_namecountry, color_continuous_scaleViridis,titleWorld Map with Population)
fig.show()地图美化和定制 地图的美化和定制是使地图更有吸引力和可读性的关键步骤 以下是一个使用Folium定制地图样式的示例 import folium# 创建地图对象
m folium.Map(location[37.7749, -122.4194], zoom_start12, control_scaleTrue)# 添加自定义标记
folium.Marker([37.7749, -122.4194], popupSan Francisco, iconfolium.Icon(colorred)).add_to(m)# 添加自定义边界
folium.RegularPolygonMarker([37.7808, -122.4128], popupAnother Location,fill_color#132b5e, number_of_sides4, radius10).add_to(m)# 添加文本标签
folium.Marker([37.7749, -122.4194], popupstrongSan Francisco/strong, tooltipClick me!).add_to(m)# 保存地图为HTML文件
m.save(customized_map.html)绘制路径和连接线 在地图上绘制路径和连接线有助于展示地理关系和运动轨迹。 以下是一个使用Folium在地图上绘制路径的示例 import folium# 创建地图对象
m folium.Map(location[37.7749, -122.4194], zoom_start12)# 添加路径
folium.PolyLine(locations[[37.7749, -122.4194], [37.7808, -122.4128]],colorblue, weight2.5, opacity1).add_to(m)# 保存地图为HTML文件
m.save(path_map.html)地图动画 在一系列时间点上展示地图的变化可以通过地图动画来实现。 以下是一个使用Folium创建地图动画的示例 import folium
from folium.plugins import TimestampedGeoJson# 创建地图对象
m folium.Map(location[37.7749, -122.4194], zoom_start12)# 添加时间戳地理JSON数据
geojson_data {type: FeatureCollection,features: [{type: Feature,geometry: {type: Point, coordinates: [-122.4194, 37.7749]},properties: {time: 2023-01-01T00:00:00}},{type: Feature,geometry: {type: Point, coordinates: [-122.4128, 37.7808]},properties: {time: 2023-01-02T00:00:00}}]
}TimestampedGeoJson(geojson_data, periodPT1H, durationPT1H).add_to(m)# 保存地图为HTML文件
m.save(animated_map.html)注意
以上代码皆为示例代码并非具体实现