У меня есть шейп-файл Индии, и на этой карте я хочу изобразить индийские города в виде точек. Я использую Jupyter Notebook с Python 3.7, работающий на Ubuntu 18.04.
ind_states = gpd.read_file('/media/debanjandey/Developer zone/Data ML works/Igismap_1/Indian_States.shp')
ind_states.head()
Вывод:
![Indian states](https://i.stack.imgur.com/AfSk1.png)
Map obtained:
![India map using shape file](https://i.stack.imgur.com/34EZT.png)
Now to place the cities, I want to use ind_states
as ax
attribute of plot(), on which these points will be plotted.
For this, I am supposed to save the previous map in a variable, say ind_map
and set ax=ind_map
while plotting. This works well if the previous code and this code is written in the same notebook cell.
ind_places = gpd.read_file('/media/debanjandey/Developer zone/Data ML works/places/places.shp') #points
ind_places[ind_places['type'] == 'city'].plot(ax= ind_map, markersize=4, c='antiquewhite')
Output:
Индийские города
Но если я напишу последние 2 строки кода в отдельной ячейке (чтобы отделить вывод head () от графика), то это будет вывод:
<matplotlib.axes._subplots.AxesSubplot at 0x7f6bdeb24750>
<Figure size 432x288 with 0 Axes>
, и график не виден.
Однако, если я укажу значение ax
конкретно, т.е.
ind_places[ind_places['type'] == 'city'].plot(ax= ind_states.plot(figsize=(30,15), color='#4A1989'),
markersize=4, c='antiquewhite')
, тогда карта будет видна должным образом .
В чем причина такого поведения? Я сделал то же самое во время практики в курсе Kaggle Geo Pandas, и в каждом случае была видна выходная карта. Тогда почему он не работает в моей настройке (т.е. во втором случае, когда не видно графика)? Как это исправить?