当我应用notboxplot函数来生成beeswarm boxplot时,如何更改标记的透明度?

时间:2019-07-09 14:37:22

标签: matlab plot boxplot

我正在使用Rob Campbell(https://www.mathworks.com/matlabcentral/fileexchange/26508-notboxplot)的notboxplot生成蜂巢状的箱形图。我想知道是否可以更改图中标记(点)的透明度?这是更改标记的大小/面部颜色/边缘颜色的代码。但是我不能在这里使用 markerfacealpha 更改透明度。

P = notBoxPlot(random(10,10));
set([P.data],'MarkerSize',4,...    
    'markerFaceColor',[0.4,0.4,0.5],...
    'markerEdgeColor', 'none')

使用此功能是否可以更改透明度?

2 个答案:

答案 0 :(得分:3)

正如@nhowe在评论中指出的那样,不能将markerfacealpha与函数图一起使用。

在“在X中生成散布”部分中,可以将plot替换为scatter

% Generate scatter in X
thisX=violaPoints(thisX,thisY);
C=cols(k,:);
h(k).data=scatter(thisX, thisY, 'o',...
                  'markerfacecolor', C+(1-C)*0.65,'markerfacealpha',0.5);

代替:

 % Generate scatter in X
 thisX=violaPoints(thisX,thisY);
 C=cols(k,:);

 h(k).data=plot(thisX, thisY, 'o', 'color', C,...
                'markerfacecolor', C+(1-C)*0.65);

注意到我将markerfacealpha的值固定为0.5,这并不是很干净。但是你懂的。

答案 1 :(得分:0)

似乎不可能。 [P.data]是Line对象的数组。还有:

  

线系列对象不支持透明度(alpha)值。

on Mathworks

所述

因此,您需要按照@obchardon的建议修改源代码。