比较2张地图和matplotlib

时间:2018-07-26 23:26:38

标签: python pandas matplotlib

@Julien:我认为否决一个可能对许多初学者有用的问题毫无意义。看到这么多仇恨真是荒谬,您的评论(我尊重)绰绰有余。

我正在研究大熊猫,并尝试根据其BoroCode(BoroCode和Borocode2)比较两幅纽约市的地图。

请找到您可以在家复制的代码:

import pandas as pd
import geopandas

# We import the database of NYC and we plot it : 
df = geopandas.read_file(geopandas.datasets.get_path('nybb'))
ax1 = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
ax1

# Then I want to make another dataframe which has also a BoroCode column  : 
df_tmp1 = pd.DataFrame([[1.1, 5], [2.7, 4], [5.3, 3], [7, 1], [20, 2]], index = ['0', '1', '2', '3', '4'], columns = ['BoroCode2', 'BoroCode'])
df_tmp1

Out [4] : 
    BoroCode2   BoroCode
0   1.1     5
1   2.7     4
2   5.3     3
3   7.0     1
4   20.0    2


# Now I merge both dataframes : 
df1 = pd.merge(df, df_tmp1, on = ['BoroCode'])

# And I can make to maps based on their BoroCode : 

map1 = df1.plot(column='BoroCode', cmap='tab10', figsize=(15, 5), legend=True)

map1

map2 = df1.plot(column='BoroCode2', cmap='tab10', figsize=(15, 5), legend=True)

map2

然后,我想在同一行中同时显示map1map2。只是比较一下。

我已经用subplot进行了测试,但是我认为我还不太熟练。

因为我对这些教程不熟悉,因为它们使用功能axxyaxes等从头开始绘制和散布图。我是一个初学者,所以我无法成功地将代码适应我的情况。

我只想一起显示这些地图。而已。

有人可以帮我展示这种方式吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

在matplotlib中创建子图,例如

fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(15,5))

Geopandas的plot接受参数ax,以向其提供要绘制的轴。

df1.plot(column='BoroCode', cmap='tab10', legend=True, ax=ax1)
df2.plot(column='BoroCode2', cmap='tab10', legend=True, ax=ax2)