@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)
map2 = df1.plot(column='BoroCode2', cmap='tab10', figsize=(15, 5), legend=True)
然后,我想在同一行中同时显示map1
和map2
。只是比较一下。
我已经用subplot
进行了测试,但是我认为我还不太熟练。
因为我对这些教程不熟悉,因为它们使用功能ax
,x
,y
,axes
等从头开始绘制和散布图。我是一个初学者,所以我无法成功地将代码适应我的情况。
我只想一起显示这些地图。而已。
有人可以帮我展示这种方式吗?非常感谢你。
答案 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)