EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑
* \: N' k# i' d: G6 H, w$ o" ]) i2 \* y! U( B' d' J" O$ F
想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下:
+ J4 _( ~9 z% A( O8 d1 o
- _% @6 w+ ~$ h0 G
若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容+ J) V1 ]+ S1 Z2 G5 ]# l
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 Z' G/ f' q R1 J: Z9 z; Shold on$ Q1 ]! Q* T* M7 A3 J
bar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);9 y6 t6 a' \6 Z/ r) I& F% C# S+ N8 P3 m# G
ylabel('客流量(人次/小时)','FontSize',14)4 y3 N* q2 Z f+ q% K% e
title('全日断面客流量','FontSize',14)
* S+ `/ b- \+ G$ @set(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法
+ e$ _$ O3 a1 bset(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容
% z+ D# J1 H. `6 D6 A- Tset(gca,'XTickLabelRotation',90)%使标注旋转角度
+ y0 n- d b( L8 Jset(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置0 }, z* d! x% M0 K9 G/ F3 G4 x
legend('下行断面客流','上行断面客流');
`/ Y3 P0 C- d& c* }; I%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:
* v8 j' o" l" B2 V n/ U" jbox off
8 H3 _( r, ?! [& P- Iax2 = axes('Position',get(gca,'Position'),...
" |) N& w( A. S7 Z n* \ 'XAxisLocation','top',...
5 W. m) P* N- G h8 b' k ~ 'YAxisLocation','right',...
, e1 X9 r: M. o& z 'Color','none',...
' p8 p1 `3 V' W$ p& n 'XColor','k','YColor','k');
$ v3 @' f/ _! i; x. y4 n& T: ~set(ax2,'YTick', []); 8 H+ G, c3 T* e% l: m1 e3 Y8 {
set(ax2,'XTick', []);
7 ~- P4 L' @: m/ Vbox on 效果如图:
|