Почему нельзя установить «Ложные» конкретные метки тиканья оси (например: xlabels_top, ylabels_right) из сюжета cartopy-геопанда? - PullRequest
0 голосов
/ 07 февраля 2019

У меня возникли серьезные трудности с установкой False xlabels_top и ylabels_right из моего графика Geopandas.

Этот график геопанды сделан внутри подпункта Geoaxes, созданного с проекцией PlateCarreeиз библиотеки Cartopy.

Мои геопанды Geodataframe в SIRGAS 2000 (единицы: градусы), EPSG: 4989. Поэтому я создал объект Geodetic Globe из библиотеки Cartopy.

Вотфрагмент кода:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import geopandas as gpd

Geopandas_DF = gpd.read_file('my_file.shp')

# setting projection and Transform
Projection=ccrs.PlateCarree()
Transform = ccrs.Geodetic(globe=ccrs.Globe(ellipse='GRS80'))

Fig, Ax = plt.subplots(1,1, subplot_kw={'projection': Projection})

Geopandas_DF.plot(ax=Ax, transform=Ax.transData)

Ax.gridlines(crs=Projection , draw_labels=True, linewidth=0.5, 
             alpha=0.4, color='k', linestyle='--')

Ax.xlabels_top = False nn# It should turn off the upper x ticks
Ax.ylabels_right = False # It should turn off the right y ticks
Ax.ylabels_left = True
Ax.xlines = True

Fig.show()

Вот пример рисунка.Можно заметить, что xticks от верхней оси и yticks от правой оси не были выключены (False).

Figure with xticks and yticks error

ПоэтомуЯ хотел бы знать, является ли это проблемой между Картопи и Геопандасом или я что-то не так делаю в своем коде.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Мне наконец удалось решить мою проблему.Я использовал советы Аждоусона, чтобы сделать это.Вот код с решением:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import geopandas as gpd

Geopandas_DF = gpd.read_file('my_file.shp')

# setting projection and Transform
Projection=ccrs.PlateCarree()
Transform = ccrs.Geodetic(globe=ccrs.Globe(ellipse='GRS80'))

Fig, Ax = plt.subplots(1,1, subplot_kw={'projection': Projection})

Geopandas_DF.plot(ax=Ax, transform=Ax.transData)

gl = Ax.gridlines(crs=Projection , draw_labels=True,    linewidth=0.5, 
                  alpha=0.4, color='k', linestyle='--')

gl.top_labels = False
gl.right_labels = False
gl.xlabels_top = False
gl.ylabels_right = False

Fig.show()

0 голосов
/ 08 февраля 2019

Метки принадлежат экземпляру gridliner, а не осям, вы можете отключить их там, сохранив gridliner, возвращенный методом gridlines и установив top_labels, right_labels как в:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import geopandas as gpd

Geopandas_DF = gpd.read_file('my_file.shp')

# setting projection and Transform
Projection=ccrs.PlateCarree()
Transform = ccrs.Geodetic(globe=ccrs.Globe(ellipse='GRS80'))

Fig, Ax = plt.subplots(1,1, subplot_kw={'projection': Projection})

Geopandas_DF.plot(ax=Ax, transform=Ax.transData)

gl = Ax.gridlines(crs=Projection , draw_labels=True, linewidth=0.5, 
                  alpha=0.4, color='k', linestyle='--')

# For Cartopy <= 0.17
gl.xlabels_top = False
gl.ylabels_right = False
# For Cartopy >= 0.18
# gl.top_labels = False
# gl.right_labels = False

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