基于这个问题中关于通过循环进行刻面的数据,我想知道是否可以调用 aax = df.plot(kind='bar')
并将由此生成的AxesSubplot
对象分配给特定的轴位置/坐标?(如第 1 行、第 1 列、第 2 列、第 3 列等...)?
我问的原因并不是真正的刻面条形图,而是使用该geopandas
库制作刻面图。如果它适用于条形图,它也可能适用于 geopandas geodataframe.plot() 调用。我无法从轴本身绘制地图,因此我似乎需要反过来——将轴作为绘图调用的副产品,然后将其适当地放置在网格中。
不工作的例子——这里的循环真的是伪的;我不会每次都移动轴索引来绘制不同的面板(实际上,我从 subplots 调用中覆盖了轴对象)。不过,这就是我想做的——将绘图调用生成的轴对象映射到子绘图调用的轴(坐标空间)。
N = 100
industry = ['a','b','c']
city = ['x','y','z']
ind = np.random.choice(industry, N)
cty = np.random.choice(city, N)
jobs = np.random.randint(low=1,high=250,size=N)
df_city =pd.DataFrame({'industry':ind,'city':cty,'jobs':jobs})
## how many panels do we need?
cols =df_city.city.value_counts().shape[0]
fig, axes = plt.subplots(1, cols, figsize=(8, 8))
for x, city in enumerate(df_city.city.value_counts().index.values):
data = df_city[(df_city['city'] == city)]
data = data.groupby(['industry']).jobs.sum()
axes = data.plot(kind='bar')
print type(axes)
fig.suptitle('Employment By Industry By City', fontsize=20)
<class 'matplotlib.axes._subplots.AxesSubplot'>
<class 'matplotlib.axes._subplots.AxesSubplot'>
<class 'matplotlib.axes._subplots.AxesSubplot'>