如果你还没有学习过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轴刻度标签是比较拥挤的:
调用自编函数旋转X轴刻度标签的matlab代码:
rotateticklabel(gca,'x',-30);
旋转后图形如下,拥挤状况得到解决:
自编的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
时间 | 地点 | 费用 | 报名 |
10月1日-3日 | 北京,人民大学 | 3000元(学生1800) | 点此报名 |
10月25日-27日 | 广州,中山大学 | 3000元(学生1800) | 点此报名 |
【咨询联系方式】
QQ号:619492407
电话: (010)68472925(曾老师)