MATLAB小技巧之二:旋转MATLAB坐标轴刻度标签-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

Matlab软件培训

>>

MATLAB小技巧之二:旋转MATLAB坐标轴刻度标签

MATLAB小技巧之二:旋转MATLAB坐标轴刻度标签

发布:AUGUST麦芽糖 | 分类:Matlab软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

利用matlab绘制图形的时候,会遇到坐标轴刻度标签过于拥挤的情况,此时需要将坐标轴刻度标签旋转一个角度,从而在一定程度上消除拥挤状况。本帖中的程序(自编函数rotateticklabel)就是用来实现这个功能(旋转坐标轴 ...
免费学术公开课,扫码加入


利用matlab绘制图形的时候,会遇到坐标轴刻度标签过于拥挤的情况,此时需要将坐标轴刻度标签旋转一个角度,从而在一定程度上消除拥挤状况。本帖中的程序(自编函数rotateticklabel)就是用来实现这个功能(旋转坐标轴刻度标签)的。下面给出例子和源代码。

如果你还没有学习过MATLAB或者想系统的学习,建议参加我们的初中级实用现场培训。王小川主讲,送全部视频,三天可以学会你一年学的知识。点击了解。

【例】绘制一个周期上的正弦函数图形,将X轴刻度标签修改并旋转。
修改X轴刻度标签的matlab代码:

x = 0:0.05:2*pi;
y = sin(x);
plot(x,y);
str = '这里是0|这里是1|这里是2|这里是3|这里是4|这里是5|这里是6|这里是7';
set(gca,'xtick',0:7,'xticklabel',str);


绘制图形如下,显然X轴刻度标签是比较拥挤的:
http://attach.matlabsky.com/data/attachment/forum/201110/08/092153ru2ta6mkbwgqtwfg.jpg.thumb.jpg
调用自编函数旋转X轴刻度标签的matlab代码:

rotateticklabel(gca,'x',-30);

旋转后图形如下,拥挤状况得到解决:
http://attach.matlabsky.com/data/attachment/forum/201110/08/092217vywm2mqw7wqdumqm.jpg.thumb.jpg
自编的rotateticklabel 函数代码如下:

function TextHandle = rotateticklabel(ha,tag,rot)

% 旋转坐标轴刻度标签的函数
% ha 坐标系句柄(默认为当前坐标系)
% tag坐标轴标识字符串('X'或'Y'),默认旋转X轴标签
% rot旋转角度(单位:度)
%
% Example:
% x = 0:0.05:2*pi;
% y = sin(x);
% plot(x,y);
% rotateticklabel(gca,'x',-30);
%
% CopyRight:xiezhh(谢中华),2011.10

if ~ishandle(ha)
warning('第一个输入参数应为坐标系句柄');
return;
end

if ~strcmpi(get(ha,'type'),'axes')
warning('第一个输入参数应为坐标系句柄');
return;
end

if nargin == 1
tag = 'X';
rot = 0;
elseif nargin == 2
if isnumeric(tag) && isscalar(tag)
rot = tag;
tag = 'X';
elseif ischar(tag) && (strncmpi(tag,'x',1) || strncmpi(tag,'y',1))
rot = 0;
else
warning('输入参数类型错误');
return;
end
else
if ~isnumeric(rot) || ~isscalar(rot)
warning('输入参数类型错误');
end
if ~ischar(tag) || (~strncmpi(tag,'x',1) && ~strncmpi(tag,'y',1))
warning('输入参数类型错误');
end
end

axes(ha);
oldxticklabel = findobj(ha,'type','text','tag','oldxticklabel');
oldyticklabel = findobj(ha,'type','text','tag','oldyticklabel');
if strncmpi(tag,'x',1)
if isempty(oldxticklabel)
str = get(ha,'XTickLabel');
x = get(ha,'XTick');
yl = ylim(ha);
set(ha,'XTickLabel',[]);
y = zeros(size(x)) + yl(1) - range(yl)/30;
TextHandle = text(x,y,str,'rotation',rot,...
'Interpreter','none','tag','oldxticklabel');
else
set(oldxticklabel,'rotation',rot);
TextHandle = oldxticklabel;
end
else
if isempty(oldyticklabel)
str = get(ha,'YTickLabel');
y = get(ha,'YTick');
xl = xlim(ha);
set(ha,'YTickLabel',[]);
x = zeros(size(y)) + xl(1) - range(xl)/10;
TextHandle = text(x,y,str,'rotation',rot,...
'Interpreter','none','tag','oldyticklabel');
else
set(oldyticklabel,'rotation',rot);
TextHandle = oldyticklabel;
end
end

rot = mod(rot,360);
if rot>=0 && rot<180
set(TextHandle,'HorizontalAlignment','right');
else
set(TextHandle,'HorizontalAlignment','left');
end


Matlab初中级实战培训

时间地点费用报名
10月1日-3日北京,人民大学3000元(学生1800)点此报名
10月25日-27日广州,中山大学3000元(学生1800)点此报名

【咨询联系方式】

QQ号:619492407

电话: (010)68472925(曾老师)

邮箱: training@pinggu.org


「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-2605418-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。