Частично прозрачный график рассеяния, но со сплошной цветной полосой - PullRequest
30 голосов
/ 18 декабря 2010

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

Вот чтополучаешь, с 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(), но это ничего не сделало ...

Ответы [ 2 ]

31 голосов
/ 18 декабря 2010

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

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

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

11 голосов
/ 18 декабря 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...