Python 如何在Jupyter笔记本中显示欧洲地图?

Python 如何在Jupyter笔记本中显示欧洲地图?,python,pandas,dataframe,geography,vincent,Python,Pandas,Dataframe,Geography,Vincent,我有一个简单的熊猫数据框,其中包含一个欧洲国家名称列表,每个国家都有一个分值。我想在Jupyter笔记本上显示一张欧洲地图,每个国家都根据这个分数上色。我希望这张地图是一张简单的渲染图像(而不是依赖于谷歌地图)。这怎么可能呢 import pandas as pd df = pd.DataFrame( [ ["Norway" , 7.537], ["Denmark" , 7.522],

我有一个简单的熊猫数据框,其中包含一个欧洲国家名称列表,每个国家都有一个分值。我想在Jupyter笔记本上显示一张欧洲地图,每个国家都根据这个分数上色。我希望这张地图是一张简单的渲染图像(而不是依赖于谷歌地图)。这怎么可能呢

import pandas as pd

df = pd.DataFrame(
         [
             ["Norway"     , 7.537],
             ["Denmark"    , 7.522],
             ["Switzerland", 7.494],
             ["Finland"    , 7.469],
             ["Netherlands", 7.377],
         ],
         columns = [
             "country",
             "score"
         ]
    )
我已经搜索了一些工具来实现这一点,但要找到比我预期的更强大的工具要困难得多。我找到的最近的是,但现在似乎不受支持。其使用方式如下所示:

import vincent
vincent.core.initialize_notebook()

geographic_data = [{
                      "name":    "states",
                      "url":     "https://raw.githubusercontent.com/wrobstory/vincent_map_data/master/us_states.topo.json",
                      "feature": "us_states.geo"
                  }]

vis = vincent.Map(
          geo_data   = geographic_data,
          scale      = 1000,
          projection = "albersUsa"
      )

vis.display()

做这件事的好方法是什么?

您可以通过如中所示获取补丁信息,然后使用matplotlib(如示例所示)或使用

打印它们。您可以尝试以下方法:

import matplotlib.pyplot as plt
import cartopy
import cartopy.io.shapereader as shpreader
import cartopy.crs as ccrs

plt.figure(figsize=(26, 30))
ax = plt.axes(projection=ccrs.EuroPP())
ax.add_feature(cartopy.feature.BORDERS, linestyle='-', alpha=.5)
ax.coastlines(resolution='50m')
ax.add_feature(cartopy.feature.OCEAN,facecolor=(0.2,0.2,0.2))
ax.gridlines()