matplotlib如果第一次分配它们,则不会更改散点颜色

时间:2011-10-31 15:09:50

标签: python 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()

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

1 个答案:

答案 0 :(得分:2)

我想说这是matplotlib版本的bug /限制。 我尝试了代码:

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,32bit)的预期行为

因此,如果可能的话,我建议您升级安装