2013-04-23 11 views
5

które chciałbym usunąć tylne line-separatorów (rozdzielaczy?) W sporządzonym colormap, wykorzystujące ColorbarBase:matplotlib ColorbarBase: usuwanie kolorów Separatory

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') 

zawsze daje mi zbyt wiele czarnych linii pomiędzy. Czy istnieje sposób na ich wyeliminowanie? Próbowałem już rzeczy jak:

del cb1.lines 
del cb1.dividers 

lub

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

jak widać w metodach ColorbarBase w http://fossies.org/dox/matplotlib-1.2.0/matplotlib_2colorbar_8py_source.html#l00281.

colorbar with too many black lines

+0

.. czy jest to spowodowane formatem pliku wyjściowego PNG? plt.savefig ('xxx.png') – hannesk

Odpowiedz

1

Dowiedziałem się, że rzeczywiście był to backend matplotlib!

mpl.use('WXAgg') 

rozwiązany!

+0

Ach, oczywiście. Dobra robota! – Mike

2

To działa na mnie, bez żadnych linii. Widzę dwie oczywiste możliwości:

1) Masz wersję buggy. Jeśli wykonam matplotlib.__version__ w wierszu Pythona, widzę 1.2.0. Korzystam z OS X 10.6.8 z pythonem 2.7.3 i wszystkim zainstalowanym z Macports. Jak o tobie?

2) To jest coś w kodzie, którego nam nie pokazałeś. W przypadku takich pytań zawsze powinieneś pokazywać minimalny przykład pracy. (Które czasem mogą pomóc dowiedzieć się problem, zanim jeszcze zapytać go). Na przykład, mogę zacząć ipython --pylab oraz następujące utwory:

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') 

Zarówno GUI, który wyskakuje i PNG, który zostanie zapisane następujące informacje:

Colorbar

to działa dla Ciebie? Czy w pozostałej części kodu zrobiłeś coś znacznie innego?

+0

W porządku, dzięki! Próbowałem na moim Ubuntu (12.04) z matplotlib 1.2.1 .. ale na moim OSX-ie, działa to również jak urok! ... Jestem zmieszany. Tak często. – hannesk

+0

aha ... kiedy pozwolę, aby działał w ipythonie, działa. Ale jeśli pozwolę, aby działał jako skrypt z terminala z "python file.py", tworzy czarne linie. Czy to może być inny backend? – hannesk

Powiązane problemy