2013-04-23 2 views
5

Я хотел бы удалить заднюю линию-разделители (разделители?) В нарисованной палитре, используя ColorbarBase:Matplotlib ColorbarBase: удалить цветные разделители

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

Он всегда дает мне слишком много черных линий между ними. есть ли способ их устранения? Я уже пробовал такие вещи, как:

del cb1.lines 
del cb1.dividers 

или

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

, как показано в методах ColorbarBase в http://fossies.org/dox/matplotlib-1.2.0/matplotlib_2colorbar_8py_source.html#l00281.

colorbar with too many black lines

+0

.. или это вызвано форматом выходного файла PNG? plt.savefig ('xxx.png') – hannesk

ответ

1

Я узнал, что он действительно был бэкэндом matplotlib!

mpl.use('WXAgg') 

решил это!

+0

Ах, конечно. Отлично сработано! – Mike

2

Это работает для меня, без каких-либо линий. Я вижу две очевидные возможности:

1) У вас есть багги версия. Если я сделаю matplotlib.__version__ в приглашении python, я вижу 1.2.0. Я использую OS X 10.6.8 с python 2.7.3, и все установлено из macports. Как насчет тебя?

2) Это что-то в коде, который вы нам не показали. С такими вопросами вы всегда должны показывать минимальный рабочий пример. (Который иногда может помочь вам понять вашу проблему, прежде чем вы даже спросить его). Например, я могу начать ipython --pylab, и следующие работы:

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

И GUI, который всплывает и PNG, который будет сохранен показывают следующее:

Colorbar

ли эту работу для вас? Вы сделали что-то значительно другое в остальной части вашего кода?

+0

Хорошо, спасибо! Я пробовал на своем Ubuntu (12.04) с matplotlib 1.2.1 .. но на моем OSX он также работает как charme! ... Я смущен. Так часто. – hannesk

+0

aha ... когда я позволяю ему работать в ipython, он работает. Но если я позволю ему запустить сценарий из терминала с «python file.py», он создаст черные линии. Возможно, это другой сервер? – hannesk

Смежные вопросы