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:
Keneler Linux üzerinde eksik değildir:
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)
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
Eski sürümdeki bazı hataların daha yeni sürümde düzeltilmiş olması çok olasıdır. – Hun
@Whir: Bu hatayı yaşıyor olabilirsiniz: https://github.com/matplotlib/matplotlib/issues/5673. – unutbu