Как изменить прозрачность маркеров, когда я применяю функцию notboxplot для генерации теплого бокса пчел? - PullRequest
2 голосов
/ 09 июля 2019

Я использую notboxplot от Роба Кэмпбелла (https://www.mathworks.com/matlabcentral/fileexchange/26508-notboxplot) для создания коробок с пчелиным теплом. Мне интересно, возможно ли изменить прозрачность маркеров (точек) на графиках? Вот код измененияразмер / цвет лица / цвет края маркера. Но я не могу использовать markerfacealpha , чтобы изменить прозрачность здесь.

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

Есть ли способ изменить прозрачность с помощьюэта функция?

Ответы [ 2 ]

3 голосов
/ 09 июля 2019

Как отметил @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, что не совсем чисто. Но вы получаете принцип.

0 голосов
/ 09 июля 2019

Кажется, что это невозможно.[P.data] - это массив объектов Line.И:

Объекты серии строк не поддерживают значения прозрачности (альфа).

Как указано в Mathworks

Итак, вынеобходимо изменить исходный код, предложенный @ obchardon.

...