2016-07-15 5 views
1

Я пытаюсь построить это поле сюжет так: BoxplotMatlab boxplot свойства

Я попробовал этот код:

boxplot(randn(10,98)','notch','on') 
set(0,'DefaultAxesFontName', 'Cambria Math') 
ylabel('Normalized Parameter'); 
set(gca,'FontSize',14,'fontWeight','bold'); 
set(gca,'TickLabelInterpreter','tex'); 
set(gca,'XTickLabel',{'a_{0}','a_{1}','a_{2}','a_{3}','a_{4}','b_{1}','b_{2}','b_{3}','b_{4}','w'}) 
color = 'b'; 
h = findobj(gca,'Tag','Box'); 
for j=1:length(h) 
    patch(get(h(j),'XData'),get(h(j),'YData'),color,'FaceAlpha',1); 
end 
lines = findobj(gcf, 'type', 'line', 'Tag', 'Median'); 
set(lines,'linewidth',1, 'Color', 'r'); 

Как я могу изменить края и средний цвет линии?

+0

Линия 'набор (строки, 'ширина линии', 1, 'Цвет', 'г');' изменяет параметры срединных линий. Что с этим не так? –

+0

Это не работает, когда я меняю «FaceAlpha» на 1. –

ответ

0

Вот фиксированный код, который:

g = {'a_{0}','a_{1}','a_{2}','a_{3}','a_{4}','b_{1}','b_{2}','b_{3}','b_{4}','w'}; 
bx = boxplot(randn(10,98).',g,'notch','on') 
ax = gca; 
set(0,'DefaultAxesFontName', 'Cambria Math') 
ylabel('Normalized Parameter'); 
set(ax,{'FontSize','FontWeight','TickLabelInterpreter'},{14,'bold','tex'}); 
h = get(bx(5,:),{'XData','YData'}); 
for k=1:size(h,1) 
    patch(h{k,1},h{k,2},[0.4 0.8 0.85]); 
end 
ax.Children = ax.Children([end 1:end-1]); 

Основная ошибка заключалась в том, что вы поместите патч выше коробок, так что последняя строка фиксации этого.

filled boxplots

+0

@HH Если этот ответ вам помог, пожалуйста, следуйте [рекомендациям сайта] (https://stackoverflow.com/help/someone-answers) и рассмотрите вопрос о повышении/принимая его. – EBH

Смежные вопросы