python - 在 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()
您可以通过元组指定rgb 颜色(r, g, b)
,其中 r、g、b 是 [0, 1] 范围内的浮点数。
推荐阅读
- javascript - 如何使用谷歌图表用 javascript 迭代这种对象?
- android - TextView 可横向滚动,但纵向显示为全高
- php - 双击获取语言
- css - 变换:使用视口单位进行缩放
- c++ - 带有谓词与初始化列表的 std::map
- eclipse - 订阅 Eclipse IDE 中的重构事件
- django - Django Rest Framework can't register route
- python - Jupyter:如何绘制多个具有固定高度的直方图?
- r - 绘制多条 ROC 曲线的平均 ROC 曲线,R
- node.js - 我试图使用“create-proton-app new-App”创建一个 Proton Native App,但它失败并出现一堆错误