如何使用Matlab在单个原型中使用不同的标记颜色?

时间:2019-07-01 22:57:26

标签: matlab

我正在Matlab中使用probplot命令来获取单个数据集的概率图。一共有15个数据点(全部为数字),我想对一个probplot中的不同数据点使用不同的标记颜色。

我试图初始化具有不同颜色的字符数组的单元格,并在以下代码中使用了它,但没有用

data =[68391;54744;54682;71629;42610;54371;37500;41222;39767;65042;54706;15108;57000;55460;73360]';

colorarray = cell(1,15);
facecolorarray=cell(1,15);
markertypearray = cell(1,15);

GBIds =  false(1,15);
reqd_IDxs = [2 3 5 6 8];

GBIds(reqd_IDxs)=1;
colorarray(GBIds)={'b'};
facecolorarray(GBIds)={'b'};
markertypearray(GBIds)={'o'};

colorarray(~GBIds)={'k'};
facecolorarray(~GBIds)={'r'};
markertypearray(~GBIds)={'+'};


h1=probplot('lognormal',data,'noref');
set(h1(1),'marker',markertypearray,'color',colorarray,'linewidth',3,'markersize',25,'markerfacecolor',facecolorarray);

错误:

使用matlab.graphics.primitive.Line / set时出错 设置类“行”的属性“标记”时出错: 无效的枚举值。使用以下值之一:'+'| 'o'| '*'| '。' | 'x'| “正方形” | “钻石” | 'v'| '^'| '>'| '<'|五角星| '卦'| “没有”。

1 个答案:

答案 0 :(得分:0)

我相信您可能无法一次通过标记数组,而必须通过单个标记。例如,使用

set(h1(1),'marker',markertypearray{1},'color',colorarray{1},'linewidth',3,...
'markersize',25,'markerfacecolor',facecolorarray{1});

为了使用不同的标记,您可能需要在hold on循环内用for一次绘制带有相同标记的每组点,例如this