EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑
# d+ O& |2 z. V7 ?$ d- ?8 d0 x, y& Y$ ~! `/ c9 \
想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下:
2 r! a5 a: x1 h' u
# e5 B9 c$ j- _ W6 P
若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容1 h5 w/ V( p+ P) R4 O+ ?* K
x=2:2:46; xx=1:2:47;%与上面x正好错位,使标注在图形左右两侧 %以下为分别两次利用bar进行两次绘制,并利用FaceColor属性进行颜色区分 bar(x,data(:,1),'FaceColor',[0.7 0.7 0.7],'BarWidth',0.5);
* ^8 `8 u0 }3 }7 T5 G' Jhold on
2 x3 O/ [- M# I7 p. S# W# Fbar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);6 O- u' k0 \) U
ylabel('客流量(人次/小时)','FontSize',14)7 T0 O; \% v& _# S
title('全日断面客流量','FontSize',14)' p" r& w9 j' b Z7 Y
set(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法* Z* ~1 b1 Z. F4 ?
set(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容
9 H7 N5 O* z3 z, T# |% l" pset(gca,'XTickLabelRotation',90)%使标注旋转角度
/ @" _' p; @# q0 ?set(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置
3 l5 Z" M, k1 s0 w9 @% Hlegend('下行断面客流','上行断面客流');( u: V) C8 s- S
%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:0 d. p5 ?2 S Q* I; G' s
box off 9 x. \. R. @) N0 ~
ax2 = axes('Position',get(gca,'Position'),...
! E* m0 b0 w& j" | 'XAxisLocation','top',...
/ a9 }& J" f( ~7 N 'YAxisLocation','right',... 0 ~4 S9 i7 `3 M h$ M- k
'Color','none',...
, w# Y3 ?, Z+ x 'XColor','k','YColor','k'); 8 R7 S% h& z. k
set(ax2,'YTick', []);
2 ] z# S5 z; P6 ]set(ax2,'XTick', []);
: G- {7 X9 ^! \; Kbox on 效果如图:
|