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

如何使用Matlab在单个probplot中使用不同的标记颜色?,matlab,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); faceco

我正在使用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时出错 设置类“Line”的属性“Marker”时出错:
无效的枚举值。使用以下值之一:“+”|“o”|“*”|“.”x“|”square“|”diamond“|”v“|”^“|”>“|”我相信您可能无法同时通过标记数组,而必须通过单个标记。例如,使用

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

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

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

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

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

谢谢。我可以使用h1.ydata提取Y数据,但我不知道如何保留Y轴比例(概率%)。如果我能做到这一点,那么我可以在绘图后使用绘图功能dd
ylim([0,1])
。谢谢。但y数据的概率不是%。它以分位数表示,在-1.5到1.5之间。我不知道如何将分位数转换为概率。这似乎超出了这个问题的范围,所以我建议用您当前的代码和错误开始一个新问题。但是,请注意,要使解决方案起作用,您可以使用不同的数据点继续多次使用
probplot
,而不必更改为使用
plot
。谢谢。我可以使用h1.ydata提取Y数据,但我不知道如何保留Y轴比例(概率%)。如果我能做到这一点,那么我可以在绘图后使用绘图功能dd
ylim([0,1])
。谢谢。但y数据的概率不是%。它以分位数表示,在-1.5到1.5之间。我不知道如何将分位数转换为概率。这似乎超出了这个问题的范围,所以我建议用您当前的代码和错误开始一个新问题。但是,请注意,要使解决方案起作用,您可以使用不同的数据点继续多次使用
probplot
,而不必更改为使用
plot