带误差线的组图
Group plots with error-bars
我有以下制作情节的代码:
dfs = [0 5 10 15 20 25 ];
Intensities = [0.0593 0.0910 0.1115 0.0611 0.0975 0.0715] ;
SE = [0.2165 0.2068 0.2555 0.2479 0.2340 0.2239];
errorbar(dfs, Intensities, SE, 'ro');
hold on
plot(dfs,Intensities,'bo');
title('\fontsize{14}Intensities per condition');
hold off;
ylim([-0.2 0.5])
names = {'\fontsize{12}Cond1, Group1'; '\fontsize{12}Cond2, Group1'; '\fontsize{12}Cond1, Group2'; '\fontsize{12}Cond2, Group2'; '\fontsize{12}Cond1, Group3';'\fontsize{12}Cond2, Group3'};
set(gca, 'xtick', dfs, 'xticklabel', names);
xlim([-1 26]); %just for better visualisation
ylabel('\fontsize{14}Intensities')
我想将点与误差线成对分组。所以点(点估计)1, 3, and 5
都属于条件 1,而点 2, 4 and 6
属于条件 2。我的意思是应该有一些迹象表明 1, 3, 5
属于条件 1 和2, 4, 6
条件 2,例如通过图例。但是 legend('Condition 1','Condition 2')
在这里不能正常工作。把所有的信息都放在 xaxis ticks 上,实在是内容太多了。或者,也可以明确表示前 2 个属于 group1,接下来的两个属于 group2 等
可以做什么?
为了区分,更改点的颜色并在图例中提及它们。
对于您的情况,如果有几个条件和许多组,最好使用图例中的条件(这是您首先声明的要求结果)。但是,如果有几个组和很多条件,最好在图例中使用组(你写的作为替代)。
对于第一种情况,即少数条件和许多组,将您的 plot
命令替换为:
h(1) = scatter(dfs(1:2:end),Intensities(1:2:end),'o','filled');
h(2) = scatter(dfs(2:2:end),Intensities(2:2:end),'o','filled');
%filling the dots so that your eyes may not dodge you about the colors :D
%I choose 1:2:end and 2:2:end for the first and second lines since there seems to be
%an order. If there is no order, you can explicitly state that as: [1 3 5] or [2 4 6]
然后删除您更改 xticklabels
的行,并将图例用作:
legend(h,'condition1','condition2');
图1:条件少,组数多
对于第二种情况,即少数组和许多条件,将您的 plot
命令替换为:
for k=1:3
h(k) = scatter(dfs([2*k-1 2*k]),Intensities([2*k-1 2*k]),'o','filled');
end % ^---------generalised the formula
然后删除更改 xticklabels 的行并将图例用作:
legend(h,'group1','group2','group3');
图2:条件多,组数少
我有以下制作情节的代码:
dfs = [0 5 10 15 20 25 ];
Intensities = [0.0593 0.0910 0.1115 0.0611 0.0975 0.0715] ;
SE = [0.2165 0.2068 0.2555 0.2479 0.2340 0.2239];
errorbar(dfs, Intensities, SE, 'ro');
hold on
plot(dfs,Intensities,'bo');
title('\fontsize{14}Intensities per condition');
hold off;
ylim([-0.2 0.5])
names = {'\fontsize{12}Cond1, Group1'; '\fontsize{12}Cond2, Group1'; '\fontsize{12}Cond1, Group2'; '\fontsize{12}Cond2, Group2'; '\fontsize{12}Cond1, Group3';'\fontsize{12}Cond2, Group3'};
set(gca, 'xtick', dfs, 'xticklabel', names);
xlim([-1 26]); %just for better visualisation
ylabel('\fontsize{14}Intensities')
我想将点与误差线成对分组。所以点(点估计)1, 3, and 5
都属于条件 1,而点 2, 4 and 6
属于条件 2。我的意思是应该有一些迹象表明 1, 3, 5
属于条件 1 和2, 4, 6
条件 2,例如通过图例。但是 legend('Condition 1','Condition 2')
在这里不能正常工作。把所有的信息都放在 xaxis ticks 上,实在是内容太多了。或者,也可以明确表示前 2 个属于 group1,接下来的两个属于 group2 等
可以做什么?
为了区分,更改点的颜色并在图例中提及它们。 对于您的情况,如果有几个条件和许多组,最好使用图例中的条件(这是您首先声明的要求结果)。但是,如果有几个组和很多条件,最好在图例中使用组(你写的作为替代)。
对于第一种情况,即少数条件和许多组,将您的 plot
命令替换为:
h(1) = scatter(dfs(1:2:end),Intensities(1:2:end),'o','filled');
h(2) = scatter(dfs(2:2:end),Intensities(2:2:end),'o','filled');
%filling the dots so that your eyes may not dodge you about the colors :D
%I choose 1:2:end and 2:2:end for the first and second lines since there seems to be
%an order. If there is no order, you can explicitly state that as: [1 3 5] or [2 4 6]
然后删除您更改 xticklabels
的行,并将图例用作:
legend(h,'condition1','condition2');
图1:条件少,组数多
对于第二种情况,即少数组和许多条件,将您的 plot
命令替换为:
for k=1:3
h(k) = scatter(dfs([2*k-1 2*k]),Intensities([2*k-1 2*k]),'o','filled');
end % ^---------generalised the formula
然后删除更改 xticklabels 的行并将图例用作:
legend(h,'group1','group2','group3');
图2:条件多,组数少