Matplotlib Scatterplot / Color作为第三个变量/对称日志色彩量的函数

时间:2013-10-08 09:24:49

标签: python matplotlib

我有一个散点图,根据第三个变量显示阴影点。我想在api中描述我的色彩映射使用对称对数刻度:SymLogNorm

不幸的是我收到以下错误:

  

TypeError:无法将数组安全地转换为必需的类型

这是一个小例子。我正在使用matplotlib 1.3.0。

# loading modules
import matplotlib as mpl
import matplotlib.pyplot as plt

# defining variables
x=[0,1,2,3]
y=[0,1,2,3]
c=[-1000,-100,100,1000]

# making scatterplot

plt.scatter(x, y, c=c, norm=mpl.colors.SymLogNorm(linthresh=10))

如果没有对称的对数色图,情节就可以了。

plt.scatter(x, y, c=c)

see here

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

SymLogNorm的文档不是特别清楚,因此我不相信我在这个答案中所说的一切都是正确的。似乎vminvmax参数应该用于确定您考虑的数据范围,例如:

# loading modules
import matplotlib as mpl
import matplotlib.pyplot as plt

# defining variables
x=[0,1,2,3]
y=[0,1,2,3]
c=[-1000,-100,100,1000]

# making scatterplot
plt.scatter(x, y, c=c, s=100, norm=mpl.colors.SymLogNorm(linthresh=10, vmin=-1e3, vmax=1e3))
plt.colorbar(ticks=c)

enter image description here

然后,颜色条标记不会知道它是按日志缩放的,但我认为这是你想要的效果。