EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 baqiao 于 2020-12-15 13:09 编辑
+ C, c6 s1 |* @1 U: T' T3 w8 E6 D6 e( b& \; h
想要绘制这种一正一反的柱状图,且标注在图形的左右两边,样例如下: - G1 y. v7 r |
/ a2 o; _# j' r! }. \& ?若将一组为负值,直接bar(x,[y1,y2]),则图形上下会偏移错位,最后总结如下有注释的代码: load s.mat%加载标注内容
5 V7 Z! {( L* `( h, T; xx=2:2:46; xx=1:2:47;%与上面x正好错位,使标注在图形左右两侧 %以下为分别两次利用bar进行两次绘制,并利用FaceColor属性进行颜色区分 bar(x,data(:,1),'FaceColor',[0.7 0.7 0.7],'BarWidth',0.5);$ z% n% v; L# C1 H* f
hold on
$ J( N C; n `& jbar(x,-1.*data(:,2),'FaceColor',[0.05 .45 0.1],'BarWidth',0.5);
4 [3 B$ n$ ^6 P, Q. U6 o$ ` ylabel('客流量(人次/小时)','FontSize',14)
/ u% V; k; k# h& Z1 k. Gtitle('全日断面客流量','FontSize',14)7 u" M0 m# Y6 q2 d+ R w9 Y
set(gca,'yticklabel',get(gca,'ytick'));%y轴不显示科学计数法2 l7 L" ?8 X. y5 J3 O# S1 i& q
set(gca, 'FontSize',12,'XTick',xx,'XTickLabel',station);%设置标注位置和标注内容
. `+ K) `* w$ ]1 M* T% dset(gca,'XTickLabelRotation',90)%使标注旋转角度$ D/ b K+ G0 E) ^+ N
set(gca,'xaxislocation','origin')%使横轴标注平移到图形中间位置
& R" _* @' O1 r) a8 q$ b ^* vlegend('下行断面客流','上行断面客流');
* _# K8 m7 {2 j" { q%图形框的邮编和上边容易出现刻度,这往往是不需要的,可通过如下语句将其去掉:
) S' G$ P( ?' E; N* R% k4 obox off
& N6 ~9 R# P) k( x8 \* eax2 = axes('Position',get(gca,'Position'),... 9 A% _- l* G6 c
'XAxisLocation','top',...
" J: z! f8 v2 c' ` 'YAxisLocation','right',...
; d, Q& n; u; A* p 'Color','none',...
U; Q7 ]& [. `$ y' s 'XColor','k','YColor','k'); ; S& ]5 B5 v; ~) S3 J; ?
set(ax2,'YTick', []); # i% v6 s- G7 _# t, s6 d/ G
set(ax2,'XTick', []); 0 |1 S. }/ J- J* w, h0 `
box on 效果如图:
|