在下面的最小示例中,我创建了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位)的预期行为
所以如果可能的话我建议你升级你的安装