| 
本帖最后由 baqiao 于 2020-12-15 13:09 编辑 ! O2 c5 b5 j* y+ C
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  
 ; ], E4 g; v  V
 想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下: 7 t7 g2 X" j' ~7 v
 
6 j8 Y+ p  T7 V" N1 E3 L- a; m  
 若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容/ i+ Y+ f% s  R  d' ~) Cx=2:2:46;
 xx=1:2:47;%与上面x正好错位,使标注在图形左右两侧 %以下为分别两次利用bar进行两次绘制,并利用FaceColor属性进行颜色区分 bar(x,data(:,1),'FaceColor',[0.7 0.7 0.7],'BarWidth',0.5);4 I$ F. g# y8 u2 E$ x4 E  shold on* Q0 `4 T! K: T( U: ]7 M# `
 bar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);# X( A+ }, f' P
 ylabel('客流量(人次/小时)','FontSize',14)
 5 ]: E* y2 V4 m1 }% ?; ltitle('全日断面客流量','FontSize',14)- V6 c2 r8 E, u
 set(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法
 6 q+ P/ B7 `  [+ `2 e) ~set(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容
 ! @$ _$ D; Q6 t1 A/ Sset(gca,'XTickLabelRotation',90)%使标注旋转角度
 1 C/ F: [" ]: \# [. n. Zset(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置, X) ^6 }- H; p! Q; b  w
 legend('下行断面客流','上行断面客流');
 8 Z8 _1 b+ d. E) U$ ?%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:- j+ ]7 z; U. n8 ~' ~; T3 f
 box off
 , _: ?5 p+ m% [1 I! `* C1 Sax2 = axes('Position',get(gca,'Position'),...
 3 F5 P% f6 h2 p           'XAxisLocation','top',...
 5 K2 B3 U- v! v3 g           'YAxisLocation','right',...  ; a, B; M, X. N  `
 'Color','none',...
 1 {5 [+ d3 M6 y           'XColor','k','YColor','k');  7 S2 Q" v- l0 s$ A+ U& j/ q
 set(ax2,'YTick', []);  , t  \- I3 U6 R
 set(ax2,'XTick', []);  : u, A" J7 u! I2 \# U; j
 box on
 效果如图: 
  |