42

在 Python 中,使用 Matplotlib,如何简单地做一个透明度(alpha < 1)的散点图,但用一个颜色条表示它们的颜色值,但 alpha = 1?

这是一个人得到的,有from pylab import *; scatter(range(10), arange(0, 100, 10), c=range(10), alpha=0.2); color_bar = colorbar()

替代文字

如何使颜色条不透明?

PS:我试过color_bar.set_alpha(1); draw()了,但这并没有做任何事情......</p>

4

2 回答 2

40

好吧,我找到了一种方法,看起来比较干净:(使用问题中的ColorBar对象)

color_bar.set_alpha(1)
color_bar.draw_all()
# pylab.draw() or pyplot.draw() might be necessary

不过,如果能确认这是最可靠的方法,那就太好了!:)

于 2010-12-18T20:55:18.037 回答
15

这是一个巨大的,丑陋的黑客。但没有其他方法行得通。也许其他人可以改进。

fig1 = pylab.figure()
fig2 = pylab.figure()
ax1 = fig1.add_subplot(111)
ax2 = fig2.add_subplot(111)
ax1.scatter(range(10), range(10), c=range(10), alpha=0.2)
im = ax2.scatter(range(10), range(10), c=range(10), alpha=1.0)
fig1.colorbar(im, ax=ax1)
fig1.show()

替代文字

于 2010-12-18T20:27:52.617 回答