EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑 7 w: S0 @: w+ K7 }3 o! A3 b( Y
: b4 R z7 ^' I" f1 n想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下:
# G( ~+ h" \7 V1 X
: D' j& M6 g+ b" H v* ^若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容
8 k" y! V4 \; j8 C- sx=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 J2 v7 H' h4 x3 A1 W& n! d2 whold on! w3 {3 S! l- u5 `1 R
bar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);6 C% D1 V/ y: Q4 B% T4 b, T
ylabel('客流量(人次/小时)','FontSize',14)
: N1 |) |7 G; d; [; k7 k* V1 I& |3 utitle('全日断面客流量','FontSize',14)
S% f6 Q; ]" h) Wset(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法" {) H7 m: @7 v* X/ E0 C; [2 w% \; ^
set(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容; i. s- H* q" F: L# @
set(gca,'XTickLabelRotation',90)%使标注旋转角度& W9 Q% m7 U7 n( y5 X3 Z& {
set(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置
, d/ ?+ w1 n7 m! B) Tlegend('下行断面客流','上行断面客流');; I8 T+ Q2 v0 B1 z0 @
%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:. f1 Y% m) }. m3 o
box off ; r4 J- A5 d$ c" H, f4 ?2 y/ ^+ q: X
ax2 = axes('Position',get(gca,'Position'),... $ _- a( `" X% X5 j. h
'XAxisLocation','top',...
$ U; K. E A. g! w: W 'YAxisLocation','right',... + N2 l2 P! \( T
'Color','none',...
1 H( }! ~, m! S 'XColor','k','YColor','k'); - W E$ u) h( t- l6 I
set(ax2,'YTick', []); 5 c' D1 h% D' m# o1 `% G: n
set(ax2,'XTick', []);
4 X7 M) Y9 n4 D3 kbox on 效果如图:
|