在Matplotlib中使用RGB值的颜色
问题描述
我有一个数据帧,它有X、Y、Z、R、G、B值,我想使用这些信息绘制散点图,对于散点图中每个点的颜色,我需要给出R、G、B的值。我尝试了以下代码,如果我给静电颜色,比如执行COLOR=‘r’,它就会起作用。但是,当我尝试给出RGB值时,如下面的代码所示,它生成错误。
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, projection='3d')
for i in range(size):
ax.plot(pts[:,0], pts[:,1], pts[:,2], '.', color = rgba(pts[i, 3], pts[i, 4], pts[i, 5]), markersize=8, alpha=0.5)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
如何从数据框的R、G、B列中给出值?
所有值均为8位格式。
解决方案
这应该可以工作:
pts = np.array([[1, 2, 3, 0.0, 0.7, 0.0],
[2, 3, 4, 0.5, 0.0, 0.0]]) # example
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, projection='3d')
#size = pts.shape[0]
#for i in range(size):
# ax.plot([pts[i, 0]], [pts[i, 1]], [pts[i, 2]], '.',
# color=(pts[i, 3], pts[i, 4], pts[i, 5]), markersize=8, #alpha=0.5)
for p in pts:
ax.plot([p[0]], [p[1]], [p[2]], '.', color=(p[3], p[4], p[5]),
markersize=8, alpha=0.5)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
您可以通过元组(r, g, b)
指定rgb colors,其中r、g、b是范围[0,1]内的浮点数。
相关文章