0

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

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

问题是zare的某些值-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值的点。

4

1 回答 1

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')

所有代码都未经测试。

于 2012-12-03T12:24:27.697 回答