Matplotlib不改变散射点的颜色,如果他们是第一次分配



在下面的最小示例中,我创建了1点散点图,然后使用Collection.set_color在循环中更改点的颜色。如果我在第一次调用scatter时设置颜色,set_color将不会改变它的脸颜色(只有边缘颜色),而如果我在创建散点图时不指定它,脸的颜色将根据set_color改变。

from pylab import *
from numpy import *
coll=scatter([0],[0],s=500,c=[.1]) # omit c=[.1] here to have face color changing later
ion(); show()
for a in linspace(.1,.9):
    coll.set_color(coll.get_cmap()(a))
    draw()

这是一个bug,还是我在文档中遗漏了什么?

我认为这是matplotlib版本的错误/限制。我尝试了以下代码:

matplotlib 1.0.1 (ActivePython 2.6.7, win7 64bit)           --> reproduced the behavior
matplotlib 1.1.0.dev (ActivePython 3.2.2, winXP, 32bit)     --> works as expected

Avaris也评论说他得到了mpl 1.1.0 (win7, 32位)的预期行为

所以如果可能的话我建议你升级你的安装

相关内容

最新更新