使用散点图使用-inf设置点的颜色

时间:2012-12-03 11:27:26

标签: matplotlib

我正在绘制一个散点图,其中我指定了每个点的颜色:

ax.scatter(x, y, c=z)

问题是z的某些值为-inf,并且这些点不会被绘制。我想把它们设置成某种颜色。我试过这个:

cm = mpl.cm.get_cmap()
cm.set_under('k',1.0)
cm.set_bad('purple',1.0)
ax.scatter(x, y, c=z, cmap=cm)

但仍然没有显示-inf值的分数。

1 个答案:

答案 0 :(得分:1)

我认为在无穷远处过度绘制点是最容易的:

cm = mpl.cm.get_cmap()
cm.set_under('k',1.0)
cm.set_bad('purple',1.0)
ax.scatter(x, y, c=z)
ax.scatter(x[numpy.isinf(z)], y[numpy.isinf(z)], c='b')

如果你想排除正无穷大,这似乎有效:

cm = mpl.cm.get_cmap()
cm.set_under('k',1.0)
cm.set_bad('purple',1.0)
ax.scatter(x, y, c=z)
indices = numpy.isinf(z) & (z < 0)
ax.scatter(x[indices], y[indices], c='b')

但所有代码都未经过测试。