function mainplot(trait, marker, mnames) %make an main effects plot K = max(marker)+1; %2 for BC, 3 for F2 means = zeros(1,K); ns = zeros(1,K) stds = zeros(1,K); for i = 1:K means(i) = nanmean(trait(find(marker==i-1))); ns(i) = sum(~isnan(trait(find(marker==i-1)))); stds(i) = nanstd(trait(find(marker==i-1))); end stds = stds./sqrt(ns); plot(means,'-d') axis([0.5 K+0.5 .9*min(min(means-stds)), 1.1*max(max(means+stds))]) hold on for i = 1:K plot([i,i]',[means(i)-stds(i),means(i)+stds(i)]','+:') end set(gca,'XTick',[1:K]) if K == 2 set(gca,'XTickLabel',['AA';'AB']) else set(gca,'XTickLabel',['AA';'AB';'BB']) end if nargin>2 xlabel(mnames(1)) end hold off