5

我想使用 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 = []

http://fossies.org/dox/matplotlib-1.2.0/matplotlib_2colorbar_8py_source.html#l00281中的 ColorbarBase 方法所示。

带有太多黑线的彩条

4

2 回答 2

2

这对我有用,没有任何线条。我看到两个明显的可能性:

1)你有一个错误的版本。如果我matplotlib.__version__在 python 提示符下执行,我会看到1.2.0. 我正在使用 OS X 10.6.8 和 python 2.7.3,以及从 macports 安装的所有内容。你呢?

2)这是您没有向我们展示的代码中的内容。对于这样的问题,您应该始终展示一个最小的工作示例。(这有时可以帮助您在问问题之前找出问题。)例如,我可以 start 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 都显示以下内容:

彩条

那对你有用吗?您是否在其余代码中做了一些明显不同的事情?

于 2013-04-23T17:06:56.587 回答
1

我发现它确实是 matplotlib 后端!

mpl.use('WXAgg')

解决了!

于 2013-04-29T14:38:54.990 回答