这里有三个问题, 一是不同曲线的绘制, 这个可以用for循环实现; 二是标签的设定, 这个要用xtick,xticklabel设定; 第三个问题比较复杂, 是实现xticklabel的旋转, 这个没有直接的命令, 需要使用text实现手工绘制. 下面给出了一个实例.
其它细节可以自己斟酌修改. 需要帮助可以私信我.
function draw()
close all;clear all;clc;
y=[1 2 3 4 5
3 5 6 7 8
1 3 5 8 14];
figure(1);hold on;
for i=1:3
plot(5*(i-1)+1:5*(i-1)+5,y(i,:),'k.-')
end
Xt=[2.5,7.5 12.5];
xTickLabel=['浙 江';'上 海';'北 京'];
set(gca,'xTick',Xt);
set(gca,'xTickLabel',xTickLabel)
% 下面是实现旋转的代码.
% ---------------------------------------------------------------
ax = axis; % Current axis limits
axis(axis); % Set the axis limit modes (e.g. XLimMode) to manual
Yl = ax(3:4); % Y-axis limits
t = text(Xt-0.125,Yl(1)*ones(1,length(Xt))-0.1,xTickLabel(:,:));
set(t,'HorizontalAlignment','right','VerticalAlignment','top', ...
'Rotation',90);
% Remove the default labels
set(gca,'XTickLabel','')
% Get the Extent of each text object. This
% loop is unavoidable.
for i = 1:length(t)
ext(i,:) = get(t(i),'Extent');
end
% Determine the lowest point. The X-label will be
% placed so that the top is aligned with this point.
LowYPoint = min(ext(:,2));
% ---------------------------------------------------------------
end
追问
貌似画不出来啊!这里有问题!
追答我这边复制下来运行没问题啊... 你检查下代码是不是复制错了啊...或者你截图你复制的代码我看看...
追问
就是这样的运行就有错误。。。。。不知道为什么,可能那里分错了!求指点
追答额, 不知道为什么你复制下来会这样, 把注释都混到代码里面了...
正确的应该是
你照着断句吧.
追问哦哦,谢谢啊!我再试试1
追答OK.
只需要把 第 3-5,7,10,11 这些行修改成你自己需要的参数就可以啦. 图形的美化可以画出来以后在图形界面上慢慢修改. 今天我要回去啦... 有问题明天中午或者晚上再讨论吧.