使用 Python 在中国地图上标注数字

在进行数据可视化时,地图是一种非常直观的表现形式。通过在地图上标注数据,可以使观众更容易理解信息。今天,我们将探讨如何在 Python 中为中国地图上的特定位置标注数字,使用库如 matplotlibgeopandas

环境准备

在开始编码之前,我们需要安装相关的库。你可以使用以下命令安装它们:

pip install matplotlib geopandas

代码示例

以下是一个使用 Python 在中国地图上标注数字的简单示例。在此示例中,我们将标注一些城市及其人口数据。

import geopandas as gpd
import matplotlib.pyplot as plt

# 下载中国地图数据(shapefile)
# 注意:确保你已经下载了中国的 shapefile 数据,并指定正确的路径
china_map = gpd.read_file("path_to_china_shapefile.shp")

# 示例城市及其人口数据
cities = {'城市': ['北京', '上海', '广州', '深圳'],
          '纬度': [39.9042, 31.2304, 23.1291, 22.547],
          '经度': [116.4074, 121.4737, 113.2644, 114.061],
          '人口(百万)': [21, 24, 15, 13]}
          
# 创建 DataFrame
import pandas as pd
cities_df = pd.DataFrame(cities)

# 绘制中国地图
fig, ax = plt.subplots(figsize=(10, 10))
china_map.plot(ax=ax, color='lightgrey')

# 在城市位置上标注
for index, row in cities_df.iterrows():
    ax.annotate(s=row['人口(百万)'], 
                xy=(row['经度'], row['纬度']),
                ha='center', fontsize=12, color='red')

# 设置标题和标签
plt.title("中国城市人口标注", fontsize=15)
plt.xlabel("经度")
plt.ylabel("纬度")
plt.grid()
plt.show()

这段代码首先加载了中国的地图数据,然后创建了一个包含城市及其人口的 DataFrame。最后,通过 annotate 方法在对应的城市位置标注数字。

旅行图示例

让我们使用 Mermaid 语法,展现一个简单的旅行图:

journey
    title 旅行路径
    section 北京
      去往 上海: 5: 北京 -> 上海
    section 上海
      去往 广州: 4: 上海 -> 广州
    section 广州
      去往 深圳: 3: 广州 -> 深圳

甘特图示例

我们也可以使用甘特图来展示旅行计划的时间安排:

gantt
    title 旅行计划
    dateFormat  YYYY-MM-DD
    section 旅行
    北京到上海: 2023-10-01, 3d
    上海到广州: 2023-10-04, 2d
    广州到深圳: 2023-10-06, 1d

结尾

通过上面的示例,我们可以看到如何利用 Python 在中国地图上标注城市的人口信息,同时使用 Mermaid 语法为我们的旅行计划创建可视化图形。这种方法不仅可以帮助我们更直观地呈现数据,也方便我们制定旅行计划。数据可视化是一个强大的工具,能够将复杂的数据以简单的方式展现出来。希望你能在未来的项目中灵活运用这些技巧,为你的数据故事增添更多的视觉冲击力!