2013-04-23 102 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 2013-04-23 15:46:23

回答

1

我发现它确实是matplotlib后端!

mpl.use('WXAgg') 

解决了!

+0

啊,当然。做得好! – Mike 2013-04-29 14:41:16

2

这对我的作品,没有任何线。我看到两种明显的可能性:

1)你有一个越野车版本。如果我在python提示符下执行matplotlib.__version__,我会看到1.2.0。我在python 2.7.3上使用OS X 10.6.8,并且从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上,它也像一个魅力! ... 我很困惑。经常。 – hannesk 2013-04-29 13:50:08

+0

aha ...当我让它在ipython中运行时,它可以工作。但是,如果我让它作为一个脚本从终端与“python file.py”运行它创建黑色线.. 它可能是一个不同的后端,然后呢? – hannesk 2013-04-29 14:31:15