Построение данных в Jupyter Notebook с картой страны в качестве основы - PullRequest
3 голосов
/ 10 июля 2020

У меня есть шейп-файл Индии, и на этой карте я хочу изобразить индийские города в виде точек. Я использую 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

Map obtained:

India map using shape file

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, и в каждом случае была видна выходная карта. Тогда почему он не работает в моей настройке (т.е. во втором случае, когда не видно графика)? Как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...