2016-03-31 11 views
2

Zor bir zaman geçirmem gereken çok tuhaf bir problemim var. Netcdf dosyasından bazı değişkenleri çizmek için python kullanıyorum. Bu durumda yağış. Mac'imde kodu çalıştırdığımda, tüm onaylar renk çubuğunda görünmez. Ancak, linux sunucumda aynı kodu çalıştırdığımda, tüm onaylar görünür.Python colorbar üzerindeki tüyler, macunda yok

benim mac piton yol:

~:which python 
/opt/local/bin/python 

Gerçekten sorun olabilir ne önerilerinizi takdir ederiz.

Keneler MAC üzerinde eksik:

Ticks are missing on mac

Keneler Linux üzerinde eksik değildir:

Ticks are not missing on linux

Kodum

#!/usr/bin/env python 
import matplotlib 
matplotlib.use('Agg') 
import numpy as np 
import netCDF4 as nc 
import matplotlib.pyplot as plt 
import os,sys 
from mpl_toolkits.basemap import Basemap 

fil = str(sys.argv[1]) 

nc_f = nc.Dataset(fil,'r') 
lats = nc_f.variables['XLAT'][0,:,:] 
lons = nc_f.variables['XLONG'][0,:,:] 
precip = nc_f.variables['PREC'][:,:,:] 
nc_wrf.close() 

precip_lvl=[0.0,0.1,0.5,1.0,1.5,2.0,3.0,4.0,5.0,7.0,10.0,15.0,20.0,25.0,30.0,35.0,40.0] 
precip_color = [(1.00, 1.00, 1.00), (0.84, 0.69, 0.63), 
(0.72,0.56,0.51), (0.80,0.86,1.00),(0.65,0.73,1.00),(0.49,0.63,1.00), 
(0.37,0.42,0.97),(0.31,0.33,0.98),(0.13,0.57,0.09), 
(0.20,0.71,0.18),(0.65,0.80,0.36),(0.68,0.99,0.36),(1.0,1.0,0.08), 
(0.99,0.57,0.05),(0.86,0.00,0.02),(0.68,0.00,0.02),(0.42,0.00,0.02)] 


m = Basemap(projection='merc',llcrnrlat=50,urcrnrlat=60,\ 
     llcrnrlon=0,urcrnrlon=20,lat_ts=0,resolution='i') 

x,y=m(lons,lats) 
for indx in xrange(36): 

    tmp = precip[indx,:,:] 

    fig = plt.figure(figsize=(10,8)) 
    m.contourf(x,y,tmp,levels=precip_lvl, extend='both', colors=precip_color) 
    plt.colorbar(shrink=0.8,ticks=precip_lvl) 

    typ='.png' 
    name='prec' 
    plt.savefig(name+str(indx)+typ) 

cevap

1

Ben ilk versiyonunu karşılaştırmak olacaktır arasındaki sayılar iki makine. Benim mac üzerinde

import matplotlib 
import mpl_toolkits.basemap 
print(matplotlib.__version) 
print(mpl_toolkits.basemap.__version__) 
+0

bana verir: 1.5.0, 1.0.7 ve linux üzerinde: 1.3.1, 1.0.7 Yani matplotlib versiyonları farklıdır. Ama bu gerçekten soruna neden olabilir mi? – Whir

+0

Eski sürümdeki bazı hataların daha yeni sürümde düzeltilmiş olması çok olasıdır. – Hun

+1

@Whir: Bu hatayı yaşıyor olabilirsiniz: https://github.com/matplotlib/matplotlib/issues/5673. – unutbu