绘制左轴上的线图超过右轴上的条形图

绘制左轴上的线图超过右轴上的条形图

问题描述:

在带有两个y轴的图中,一个用于线图(左)和一个用于条形图(右),我想条形图在折线图下获得更好的可见性而不是更高的可见性。绘制左轴上的线图超过右轴上的条形图

Evolution bar-chart line-plot

正如你可以在这张照片(我希望你能看到它)看到,条形图显示沉淀和不同的线叶绿素指数的演变进化,我的问题是,条形图覆盖线条,我希望线条更加精细。

这是我的脚本:

figure 
yyaxis right 
bar (meteo(:,1),meteo(:,14)); 
ylabel('Precipitation (mm)'); 
hold on 
for i=1:6; 
    a = []; 
    b = []; 
    color = ['r' 'm' 'b' 'c' 'g' 'y']; 
    for j=0:6 
     a(i,j+1)=matrice_5(j*6+i,1);%jour 
     b(i,j+1)=matrice_5(j*6+i,3);%moyenne  
    end 
     hold on 
     yyaxis left 
     plot(a(i,:),b(i,:),color(i),'LineWidth',1.5); 
end 
title('Evolution of the mean of the chlorophyll index (HNT) - Charlotte variety'); 
xlabel('Day (2013)') 
ylabel('Chlorophyll index (HNT)') 
axis([735390 735442 32 50]); 
set(gcf,'Position',[645 206 701 477]); 
datetick('x','dd mmm','keepticks') 
h=legend('0','50','100','150','200','250','precipitation','Location','best'); 
v = get(h,'title'); 
set(v,'string','Nitrogen rate in kg/ha'); 
set(h,'Position', [0.1793 0.1494 0.1127 0.2446]); 
hold on 
plot([735422 735422],[32 49],'Color',[.3 .3 .3]); 
hold off 

到现在为止我只得到了结果的一半。我想把条形图放在左边的轴上(y轴左边)和右边的线条图上。我想保留叶绿素指数在左边。

谢谢您的帮助

其实,这是一个真正伟大的问题,因为真的是有这样做的没有明确记载方式,并在所有的例子,无论是在右轴上显示在顶部。即使在这个example在他们自己的网站上,请注意他们多么小心地将bar绘制在左侧轴上。

因此作为前言,yyaxis不会创建单独的轴(如yyplot所用),而是rather just applies an additional NumericRuler to the same axes。如果它只是不同axes我们可以用uistack以我们想要的任何方式重新排列轴,但是因为它们是相同的axes,所以我们需要仔细观察一下控制z轴顺序的属性内容。

当我们看这些属性时,yyaxis会自动将轴的SortMethod从其默认值depth更改为children。这使得出现在左轴上的任何物体都低于添加到右轴上的任何物体。因此,我们需要做的就是修改SortMethod回到默认值(depth),然后排序依赖于z位置,就像它通常在axes内一样。

所以,作为一个示范,让我们创建一些数据

days = 0:5:35; 
conc = [515 420 370 250 135 120 60 20]; 
temp = [29 23 27 25 20 23 23 17]; 

创建情节就像你一样(一条线,与右边的酒吧酒吧)

yyaxis right 
b = bar(days, temp, 'FaceColor', [0.8 0.8 0.8]); 
yyaxis left 
p = plot(days, conc, 'LineWidth', 2); 

enter image description here

现在,如果我们更改SortMethod它会将线条对象置于顶部。

set(gca, 'SortMethod', 'depth') 

enter image description here

+0

谢谢。我喜欢你的建议,它几乎完成了这项工作。正如你在我的问题的图片上看到的那样,图表中的每个条都以黑色包围。所以当我应用你的代码集(gca,'SortMethod','深度')。 剧情的线条超出条形图的字体大小,但不会超出那些黑色条形边框。任何想法为什么? Btw:你怎么能像你在图上做的那样取出轴?你的条形图没有边框? –