对于我的python知识水平来说可能是一个潜在的不可能完成的任务,但我在想是否有一种方法(可能是一个已经存在的程序)来映射包含AreaCodes列和Test Results列的数据帧的结果,该地区的实际地图。
所以我的df看起来像这样:
PostCode Area Test Result
0 BN P
1 PE P
2 SO PRS
3 PE P
4 PE F
5 CW P
6 CW F
7 S P
8 S F
9 SW P
10 SW F
11 CM P
12 CM F
PostCode区域适用于英国。我可能正在寻找类似于英国热图的东西,其中强度由“P&#P>”的数量控制
答案 0 :(得分:0)
您可以使用cartopy。
pip install https://github.com/SciTools/cartopy/archive/v0.13.1.tar.gz
你需要geos,shapely和proj4,这是最简单的使用anaconda:
conda install geos proj4 shapely
我从这里下载了包含英国邮政区域的形状文件: http://www.opendoorlogistics.com/downloads/
然后您可以使用cartopy为这些区域着色:
from cartopy import crs
from cartopy.io import shapereader
import matplotlib.pyplot as plt
from matplotlib.cm import get_cmap
cmap = get_cmap('viridis')
uk_postal_areas = shapereader.Reader('Areas.shp')
ax = plt.axes(projection=crs.Mercator())
values = {
'BA': 0.5,
'BN': 0.1,
'NE': 1.0,
'IV': 0.7,
'BT': 0.3,
}
for record in uk_postal_areas.records():
name = record.attributes['name']
ax.add_geometries(
[record.geometry],
facecolor=cmap(values.get(name, 0)),
linewidth=0,
crs=crs.PlateCarree(),
)
ax.set_extent([-10, 4, 48, 61], crs=crs.PlateCarree())
plt.show()
结果