2017-10-11 135 views
1

有沒有辦法在地圖上旋轉緯度刻度標籤?我知道在QGIS等GIS程序中這是一個非常簡單和常用的選項,但是在使用cartopy時我找不到關於這個主題的任何內容。旋轉緯度(y)刻度標籤 - cartopy

下面有一個簡單的例子(我繪製我自己shape文件,我這裏不表達):

import matplotlib.pyplot as plt 
import cartopy.crs as ccrs 
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter 

mapp = plt.subplot(111, projection=ccrs.PlateCarree()) 
mapp.set_extent([-44.2, -45.6, -23.36, -24.35]) 

mapp.set_yticks([-23.5,-24], crs=ccrs.PlateCarree()) 
mapp.set_xticks([-44.5,-45.5], crs=ccrs.PlateCarree()) 

lon_formatter = LongitudeFormatter(number_format='.1f') 
lat_formatter = LatitudeFormatter(number_format='.1f') 
mapp.xaxis.set_major_formatter(lon_formatter) 
mapp.yaxis.set_major_formatter(lat_formatter) 
plt.show() 

這是不是最好的MCVE,但無論如何,它橫向顯示緯度刻度標記 - 這是一個標準。我的問題是:有沒有辦法將緯度刻度標籤(或y刻度標籤)旋轉90°,以便它們變得垂直?

+2

您可以編輯您的問題包括[MCVE(https://stackoverflow.com/help/mcve)?對於你的問題,就像代碼一樣,它以你擁有它們的方式創建一個經度座標的例子,以及你所說的「地圖框架」的含義,以及你想要轉換這些對象的細節。 –

+0

@JeremyMcGibbon感謝您的收入。對像我這樣的初學者非常有幫助。我提出的例子並不是最好的,我從我的代碼改編而來,但它可能會澄清我想說的話。 – hperes

回答

0

由於cartopy座標軸只是一個特殊的matplotlib座標軸,很多可以對matplotlib座標圖執行的操作,您也可以對cartopy座標圖進行操作。

對於旋轉滴答標籤,有一個example in the matplotlib gallery

所以,轉動你的Ÿ刻度標記你只需要添加以下代碼:

plt.yticks(rotation='vertical') 

我還注意到,您的地圖範圍是在錯誤的順序。順序應該是

[x_min, x_max, y_min, y_max] 

所以,你的代碼應該是這樣的:

mapp.set_extent([-24.35, -23.36, -45.6, -44.2]) 
+0

謝謝@ldreyer!我沒有這樣想,cartopy依賴於matplotlib的參數。順便說一句,set_extent是正確的,我切換set_xticks和set_yticks行中的座標。我在問題中糾正了它。再次感謝! – hperes