我正在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'| '^'| '>'| '<'|五角星| '卦'| “没有”。
答案 0 :(得分:0)
我相信您可能无法一次通过标记数组,而必须通过单个标记。例如,使用
set(h1(1),'marker',markertypearray{1},'color',colorarray{1},'linewidth',3,...
'markersize',25,'markerfacecolor',facecolorarray{1});
为了使用不同的标记,您可能需要在hold on
循环内用for
一次绘制带有相同标记的每组点,例如this