在Matplotlib中使用RGB值进行颜色

时间:2018-10-13 21:33:07

标签: python matplotlib colors data-visualization

我有一个具有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位格式。

1 个答案:

答案 0 :(得分:1)

这应该有效:

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]范围内的浮点数。