Matlab实现画柱状图坐标标签旋转

时间:2022-04-11 05:58:50

引言:

在用matlab画柱状图或者其他图的时候,你是否碰到下图这种情况:

Matlab实现画柱状图坐标标签旋转

乍一看这个柱状图画的有馍有洋的,but,仔细一看你会发现,横坐标标签如果再长一点就不好看啦,甚至会重叠,就像这样:

Matlab实现画柱状图坐标标签旋转

这样的图怎么能入reviewer老师们的法眼呢,分分钟给你个REJECT!!!!要想论文能通过,还是得从细节入手的啦!

SO,我们想办法让横坐标标签旋转一下不就好啦?下面看代码:

clc;clear;
y=[0.5,0.79,0.45,0.35,0.27,0.31,0.64,0.19,0.54,0.87];
bar(y);
set(gca,'xticklabel',{'aaaa','bbbb','cccc','dddd','eeee','ffff','gggg','hhhh','iiii','jjjj'})

xtb = get(gca,'XTickLabel');% 获取横坐标轴标签句柄

xt = get(gca,'XTick');% 获取横坐标轴刻度句柄

yt = get(gca,'YTick'); % 获取纵坐标轴刻度句柄          

xtextp=xt;%每个标签放置位置的横坐标,这个自然应该和原来的一样了。                     

ytextp=-0.3*yt(2)*ones(1,length(xt)); 
% ytextp=xt; 

% 设置显示标签的位置,写法不唯一,这里其实是在为每个标签找放置位置的纵坐标

% rotation,正的旋转角度代表逆时针旋转,旋转轴可以由HorizontalAlignment属性来设定,

% 有3个属性值:left,right,center,这里可以改这三个值,以及rotation后的角度,这里写的是45

% 不同的角度对应不同的旋转位置了,依自己的需求而定了。

text(xtextp,ytextp,xtb,'HorizontalAlignment','right','rotation',45,'fontsize',10); 

set(gca,'xticklabel','');% 将原有的标签隐去

  效果图:

Matlab实现画柱状图坐标标签旋转