matplotlib首次赋值散点颜色不改变
在下面这个简单的例子中,我创建了一个只有一个点的散点图,然后在循环中使用 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,还是我在文档中遗漏了什么呢?
1 个回答
2
我认为这是那个 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(Windows 7,32位)时得到了预期的效果。
所以如果可以的话,我建议你升级你的安装版本。