Это нормально, чтобы изменить crs, ниже я сделал это с подзаговорами. Если вы сохраняете один и тот же объект ax
, я думаю, что может быть трудно увидеть их, так как предельные значения не совпадают.
import geopandas as gpd
import matplotlib.pyplot as plt
from fiona.crs import from_epsg
municipalities = gpd.read_file("BELGIUM__Municipalities.shp")
fig, ax = plt.subplots(1, 2)
for a in ax:
a.spines['top'].set_visible(False)
a.spines['right'].set_visible(False)
a.spines['left'].set_visible(False)
a.spines['bottom'].set_visible(False)
a.get_xaxis().set_visible(False)
a.get_yaxis().set_visible(False)
municipalities.plot(ax=ax[0], color='red')
municipalities = municipalities.to_crs("epsg:3395")
municipalities.plot(ax=ax[1])
plt.show()
РЕДАКТИРОВАТЬ: Во время второго вызова ваш ax больше не ссылается на визуально существующую область, поэтому вы можете сделать это, чтобы воссоздать ее:
import geopandas as gpd
import matplotlib.pyplot as plt
from fiona.crs import from_epsg
municipalities = gpd.read_file("BELGIUM__Municipalities.shp")
def init():
fig,ax = plt.subplots()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
return ax
ax = init()
municipalities.plot(ax = ax)
plt.show()
ax = init()
municipalities = municipalities.to_crs("epsg:3395")
municipalities.plot(ax=ax)
plt.show()
municipalities.plot()
plt.show()
В последнем вызове matplotlib
создает новый объект axes, поскольку вы не упоминаете никаких осей для работа с.