Подтвердить что ты не робот

Частично прозрачный график рассеяния, но с сплошной цветной полосой

В Python с Matplotlib, как просто сделать график рассеяния с прозрачностью (alpha < 1), но с цветовой полосой, которая представляет их значение цвета, но имеет альфа = 1?

Вот что получается: from pylab import *; scatter(range(10), arange(0, 100, 10), c=range(10), alpha=0.2); color_bar = colorbar():

alt text

Как цветная полоса может быть непрозрачной?

PS: я пробовал color_bar.set_alpha(1); draw(), но это ничего не делало...

4b9b3361

Ответ 1

Хорошо, я нашел один способ сделать это, который выглядит относительно чистым: (используя объект ColorBar из вопроса)

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

Было бы здорово получить подтверждение, что это самый надежный способ продолжения!:)

Ответ 2

Это огромный, уродливый хак. Но никакой другой способ не сработает. Возможно, кто-то еще может улучшить.

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

alt text