我正在尝试制作 3D 散点图并对符号进行颜色编码。如果 RGB 颜色由 定义nan
,为什么点绘制为黑色?这个表达式没问题:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
carr = np.array([[0,0,0,1],[0,0,1,1],[0,1,0,1]]) # RGBA color array
ax = plt.axes(projection='3d')
h = ax.scatter([1,2,3],[1,2,3],[1,2,3],
c=carr)
plt.draw()
带有 nan 的新颜色数组:
carr = np.array([[0,0,0,1],np.repeat(np.nan,4),[0,1,0,1]])
ax = plt.axes(projection='3d')
h = ax.scatter([1,2,3],[1,2,3],[1,2,3],
c=carr)
plt.draw()
颜色定义为的nan
点显示为黑色,而不是没有任何颜色或其他颜色。有没有办法让它不显示?NA
在 R 中,不绘制颜色定义为的点,这在您通过某种逻辑表达式指定颜色时很方便。
当然......我总是可以对数组进行子集化以进行绘图,但如果我可以使用颜色定义将其排除在外,那就更好了。
顺便说一句,为什么
carr[1:] = np.nan
carr
在给我的第一个定义之后
array([[ 0, 0, 0,
1],
[-9223372036854775808, -9223372036854775808, -9223372036854775808,
-9223372036854775808],
[ 0, 1, 0,
1]])
代替
array([[ 0., 0., 0., 1.],
[ nan, nan, nan, nan],
[ 0., 1., 0., 1.]])