Частично прозрачный график рассеяния, но с сплошной цветной полосой
В 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()
, но это ничего не делало...
Ответы
Ответ 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]()