【问题标题】:How to color the dots in scatter3 based on data from 4th variable?如何根据第四个变量的数据为 scatter3 中的点着色?
【发布时间】:2020-08-04 11:23:38
【问题描述】:

我有位于大脑内部的通道的 3D 坐标 (x,y,z)。我正在使用 scatter3 函数将它们绘制在脑图上以获得下图(现在坐标不是真的,但现在没关系): 现在的颜色只是随机分配的,但我想根据第 4 个变量的数据为 scatter3 上的每个点着色。第 4 个变量包含有关在该通道中检测到的信号数量的信息。例如,我有 80 个具有 X、Y、Z 坐标 (80x3) 的通道和一个具有信号数量 (80x1) 的变量 N。如何根据 N 为我的 80 个通道着色?我想通过附近的颜色条在视觉上进行解释 - 例如,点越暗,在该通道中检测到的信号数量就越高。

现在我只有这个:

scatter3(sw_chs_coords(:,2), sw_chs_coords(:,1), sw_chs_coords(:,3), []); 

xlabel('X')
ylabel('Y')
zlabel('Z')
hold on
view(0, 0)

你能帮帮我吗?

【问题讨论】:

  • C 参数将颜色编码作为输入(例如,[0 0 1] 表示蓝色),但我没有。我有在每个通道中检测到的信号数量。这是一个好主意,但是如何为每个点构造颜色?
  • 看第三个要点:"如果C是长度等于X、Y、Z长度的向量,那么C中的值线性映射到中的颜色当前颜色图。" 即直接将 ghat 数量的信号向量传递给 C
  • 谢谢,我想我明白了!

标签: matlab visualization


【解决方案1】:

这听起来就像scatter3 的第五个输入

scatter3(X,Y,Z,S,C) 用 C 指定的颜色绘制每个圆。

  • 如果 C 是 RGB 三元组或字符向量或包含颜色名称的字符串,则所有圆都以指定颜色绘制。
  • 如果 C 是一个三列矩阵,C 中的行数等于 X、Y 和 Z 的长度,则 C 的每一行都指定一种 RGB 颜色
    对应圆圈的值。
  • 如果 C 是长度等于 X、Y 和 Z 长度的向量,则 C 中的值线性映射到 当前颜色图。

因此,您可以指定 RGB 值(即 [0 1] 中的 3x1 数组或正常 RGB 值的 x/256),或者您只提供另一个信息向量并将事物设置为 colormap 代表向量中的连续值。

【讨论】:

    猜你喜欢
    • 2014-09-20
    • 2021-03-13
    • 2021-11-24
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2020-12-09
    相关资源
    最近更新 更多