EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑
$ V3 s8 W4 v8 Z" \! P. p5 L) H$ h& o6 U/ y6 Q* {
想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下: , [# w4 q9 V+ |5 i- i* T) t
; {# p# o9 x4 `" K9 S0 X' X _/ M4 ^
若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容
. D% i0 S* ~% p X& Lx=2:2:46; xx=1:2:47;%与上面x正好错位,使标注在图形左右两侧 %以下为分别两次利用bar进行两次绘制,并利用FaceColor属性进行颜色区分 bar(x,data(:,1),'FaceColor',[0.7 0.7 0.7],'BarWidth',0.5);0 k& K5 {; {, j, l2 j* z
hold on# z; [ Y2 F J0 A* G% g, z
bar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);
9 X0 p9 e0 y6 X& U ylabel('客流量(人次/小时)','FontSize',14)
d+ m t( g/ A7 j( y8 {. |title('全日断面客流量','FontSize',14), y% f5 k3 j+ ?
set(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法
+ ]# X1 T/ |% {! ], vset(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容
' t& K6 B/ }7 I' H1 R) ?set(gca,'XTickLabelRotation',90)%使标注旋转角度
% B( t, D( l- {- jset(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置4 ] w0 q, V) \. J6 M K" K
legend('下行断面客流','上行断面客流');7 j8 c, ~ A5 D2 f) [# W/ f* z
%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:
& V# D) t* R! f5 O' Wbox off
) {, j( I: |" F# Eax2 = axes('Position',get(gca,'Position'),...
" D, C) ^' W2 F: J3 q6 J 'XAxisLocation','top',... 7 ~" Z. n9 x! E$ b
'YAxisLocation','right',...
/ X3 {6 s' `' @7 M. z 'Color','none',...
2 l7 _4 B2 {$ P# D# m: P 'XColor','k','YColor','k');
& A" r( l5 r( w0 }set(ax2,'YTick', []);
6 V3 Y2 p& k0 Cset(ax2,'XTick', []);
! q0 B' L/ ?7 h9 P( a% r% |box on 效果如图:
|