2013-04-23 10 views
5

mi piacerebbe eliminare i posteriori line-separatori (divisori?) Nella mappa di colori disegnato, usando ColorbarBase:Matplotlib ColorbarBase: eliminare i separatori colore

cm = get_cmap('RdBu') 
Ncol = 501 
cccol = cm(1.*arange(Ncol)/Ncol) 
cax  = fig.add_axes([0.15,0.15,0.05,0.4]) 
fig.add_axes([0.5,0.15,0.3,0.03]) 
norm = mpl.colors.Normalize(vmin=valmin, vmax=valmax) 
cb1  = mpl.colorbar.ColorbarBase(cax, cmap=cm, norm=norm, orientation='vertical') 

E mi dà sempre troppe righe nere in mezzo. c'è un modo per eliminarli? Ho già provato cose come:

del cb1.lines 
del cb1.dividers 

o

cb1.lines.remove() 
cb1.lines = [] 

come si vede nei metodi ColorbarBase in http://fossies.org/dox/matplotlib-1.2.0/matplotlib_2colorbar_8py_source.html#l00281.

colorbar with too many black lines

+0

.. o è causato dal formato del file di output PNG? plt.savefig ('xxx.png') – hannesk

risposta

1

Ho scoperto che era davvero il backend matplotlib!

mpl.use('WXAgg') 

risolto!

+0

Ah, certo. Molto bene! – Mike

2

che funziona per me, senza righe. Vedo due ovvie possibilità:

1) Si dispone di una versione buggy. Se faccio matplotlib.__version__ al prompt di python, vedo 1.2.0. Sto usando OS X 10.6.8 con python 2.7.3, e tutto installato da Macport. E tu?

2) È qualcosa nel codice che non ci hai mostrato. Con domande come queste, dovresti sempre mostrare un esempio di lavoro minimo. (Che a volte può aiutare a capire il problema prima ancora di chiedere esso.) Ad esempio, posso iniziare ipython --pylab, e le seguenti opere:

fig = figure() 
valmin =-1.0 
valmax =1.0 
cm  = get_cmap('RdBu') 
Ncol = 501 
cccol = cm(1.*arange(Ncol)/Ncol) 
cax = fig.add_axes([0.15,0.15,0.05,0.4]) 
norm = mpl.colors.Normalize(vmin=valmin, vmax=valmax) 
cb1 = mpl.colorbar.ColorbarBase(cax, cmap=cm, norm=norm, orientation='vertical') 
draw() 
savefig('/tmp/bla.png') 

Sia il GUI che si apre e il PNG che viene salvato mostrano la seguente:

Colorbar

fa questo lavoro per voi? Hai fatto qualcosa di significativamente diverso nel resto del tuo codice?

+0

OK, grazie! Ho provato su Ubuntu (12.04) con matplotlib 1.2.1 .. ma sul mio OSX, funziona anche come un vero e proprio fascino! ... Non ho capito bene. Come al solito. – hannesk

+0

aha ... quando lo lascio girare in ipython, funziona. Ma se lo lascio funzionare come uno script dal terminale con "python file.py" crea le linee nere .. E 'forse un back-end diverso, allora? – hannesk

Problemi correlati