Цвет метки отрисовки базовой карты drawparallels

У меня возможно простой вопрос. Упрощенная версия моего кода приведена ниже:

# get rid of white stripe on map
ionst, lons=addcyclic(ionst, lons)

#Setting figure attributes
fig=plt.figure(figsize=(15,15),frameon=False, facecolor='gray')

#map settings
m=Basemap(llcrnrlon=-180, llcrnrlat=-87.5, urcrnrlon=180, urcrnrlat=87.5,rsphere=6467997, resolution='l', projection='cyl',area_thresh=10000, lat_0=0, lon_0=0)

#Creating 2d array of latitude and longitude
lon, lat=np.meshgrid(lons, lats)
xi, yi=m(lon, lat)

#plotting data onto basemap
cs=m.imshow(varcor, interpolation=None, alpha=.8, cmap='seismic', vmin=-.02, vmax=.02)
vert=plt.axvline(x=-75, color='black', linewidth=5)

#drawing grid lines
m.drawparallels(np.arange(-90.,90.,30.),labels=[1,0,0,0],fontsize=20)
m.drawmeridians(np.arange(-180.,181.,45.), labels=[0,0,0,1],fontsize=20)

#drawing coast lines
m.drawcoastlines()

Когда я вызываю аргумент drawparallels и drawmeridians, метки устанавливаются в соответствии с указанным массивом. Я понял, как изменить размер галочек, но я не могу понять, как изменить цвет. Я пытался напрямую передать аргумент color=, я пробовал tick_params, я пробовал xticks, yticks и т.д...

Любые идеи? Спасибо!


person Will.Evo    schedule 14.07.2015    source источник


Ответы (1)


После долгих поисков я наконец нашел решение в Интернете. Не прямо вперед, но это работает:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
def setcolor(x, color):
     for m in x:
         for t in x[m][1]:
             t.set_color(color)
m = Basemap(lon_0=0)
m.drawcoastlines()
par = m.drawparallels(np.arange(-90,90,30),labels=[1,0,0,1])
setcolor(par,'r')
merid = m.drawmeridians(np.arange(0,360,60),labels=[1,0,0,1])
setcolor(merid,'r')
plt.show()

из https://github.com/matplotlib/basemap/issues/145

person Will.Evo    schedule 15.07.2015