【问题标题】:How to use a colormap with gscatter3 in matlab?如何在 matlab 中使用带有 gscatter3 的颜色图?
【发布时间】:2020-07-31 01:49:50
【问题描述】:

我正在尝试使用超过 8 种默认 Matlab 颜色创建散点图,但是当我创建颜色图时出现错误:使用 set 时出错 设置类“Line”的属性“MarkerFaceColor”时出错: 颜色值必须是 3 元素向量。现在我正在创建散点图:

colors = hsv(18);
gscatter3(x,y,z,idx, colors, {'.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'},15);

我还尝试手动为颜色创建矢量,但除了 8 种默认颜色(即“b”、“g”、“r”等)之外,仍然无法使用任何东西。有谁知道如何让更多颜色发挥作用?

【问题讨论】:

    标签: matlab scatter3d


    【解决方案1】:

    我也无法使用gscatter3() 函数绘制它。以防万一您想使用内置的scatter3() 函数作为替代。请注意,此方法使用 RGB (BGR) 三元组。三元组的数量必须与预期要绘制的数据点的数量相匹配。在下面的示例中,我生成了随机颜色。对于 scatter3() 函数,任何 RGB 强度的预期范围是从 (0,1) 开始。

    %Random samples/signal data%
    x = linspace(0,3*pi,200);
    y = cos(x) + rand(1,200);
    z = linspace(0,3*pi,200);
    x = x';
    y = y';
    z = z';
    
    Marker_Size = 20;
    
    Signal_Length = length(x);
    
    RGB_Triplets = zeros(Signal_Length,3);
    
    %***************************************************%
    %Here the RGB_Triplets can be written to any value%
    %***************************************************%
    %Example%
    for Row = 1: +1: Signal_Length
    Maximum_Intensity_Value = 1;
    R = rand(Maximum_Intensity_Value);
    G = rand(Maximum_Intensity_Value);
    B = rand(Maximum_Intensity_Value);
    
    RGB_Triplets(Row,:) = [R G B];
    
    end
    %***************************************************%
    
    % scatter(x,y,Marker_Size,RGB_Triplets,'filled');
    scatter3(x,y,z,Marker_Size,RGB_Triplets);
    title('Plotted Using RGB Triplets for Marker Colours');
    

    【讨论】:

    • 注意:使用 gscatter3() 时收到错误:如果 g 是字符数组,则 g 的行必须等于 x、y 和 z 的长度,或者如果 g 不是字符数组, g 的长度必须等于 x、y 和 z 的长度。确保所有长度都是一致的,甚至尝试转置以查看它是否依赖于矢量方向。 >>
    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 2012-12-05
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多