EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑
$ C7 w- ~+ ]& j% O7 j: N' m1 f; e* D6 y3 G0 p
想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下: : R6 _! o% U5 {" j/ i; f4 l
+ {+ [6 a% w* n( [; w
若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容
$ t, X% L/ C" a8 K" I0 \. S" F" @ Px=2:2:46; xx=1:2:47;%与上面x正好错位,使标注在图形左右两侧 %以下为分别两次利用bar进行两次绘制,并利用FaceColor属性进行颜色区分 bar(x,data(:,1),'FaceColor',[0.7 0.7 0.7],'BarWidth',0.5);
: Z5 ^% ^# G& [ |% Hhold on, R& V2 U2 f" D) i! L" P
bar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);
8 ] S0 j9 @7 i, T& B/ t ylabel('客流量(人次/小时)','FontSize',14)
4 C. M8 b( z0 Q, y" ptitle('全日断面客流量','FontSize',14)
# F* x8 |+ p1 ~+ jset(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法
" e. ~) n2 @, ]6 ]& d% E* m1 xset(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容
3 I; v1 b: H: a( P8 ]set(gca,'XTickLabelRotation',90)%使标注旋转角度! f$ e- `; W3 ^& r# g0 n, M
set(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置# V6 [: ]1 Q# J; b7 P/ e
legend('下行断面客流','上行断面客流');* w" X) G0 a9 u y( i& B3 N
%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:
3 j& w {/ e- M% p4 u) qbox off
" L4 A% l5 F/ X8 |4 j; kax2 = axes('Position',get(gca,'Position'),... + ]/ Z$ i, k: x4 h/ R. q2 F
'XAxisLocation','top',...
- |7 v0 T5 i9 v 'YAxisLocation','right',... 2 Z2 v1 q* h% U7 W0 c( _" s
'Color','none',... 8 ?9 h9 u( ~+ [6 a, H8 _
'XColor','k','YColor','k');
- R# D/ F: a$ d' G2 e8 P# ~set(ax2,'YTick', []); ' H; I" x; {! N) D% t
set(ax2,'XTick', []);
# F0 c( [, ~6 G/ rbox on 效果如图:
|