EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑
2 }. z& t# H# r( c
/ N! C5 m% w# D; U9 O想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下: / T0 b: k3 ?% Y# l
+ I8 {" c0 x* w/ B# I5 u若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容/ y o' V+ X- 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);
* |% |! V. Z2 m V9 e' b/ Qhold on
! N3 Q$ A& w2 M/ D# `0 obar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);
. |! R; {* T7 g2 d+ g. {* ^ ylabel('客流量(人次/小时)','FontSize',14)+ m8 d6 U1 ?1 n
title('全日断面客流量','FontSize',14)
& O! A' Y& f+ \( c0 _# i1 L5 oset(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法. T) d6 c# K% n( V, J, P
set(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容" M% ~5 [- Y0 f* V
set(gca,'XTickLabelRotation',90)%使标注旋转角度
" M8 j+ B2 T/ I9 ]! o. ~set(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置
* D/ g" \, y' ?4 Klegend('下行断面客流','上行断面客流');4 i) |/ u* J4 \% D' B
%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:
& b0 W4 b4 c; tbox off 1 i- d" W( {8 A
ax2 = axes('Position',get(gca,'Position'),...
4 Y( n% \8 T4 C& _ 'XAxisLocation','top',... & {6 U- R( x- D* r! }
'YAxisLocation','right',... ' ~, w% n4 p* a0 R3 a M
'Color','none',... - N' K" o u" X' C: X
'XColor','k','YColor','k'); 3 S- r( G4 k) `7 y' h
set(ax2,'YTick', []);
3 N2 z k! {- `$ V2 zset(ax2,'XTick', []); 8 {2 l1 M) g9 b- t4 R8 M
box on 效果如图:
|