我在用matlab中的plot画图的时候,在设置了xy轴坐标之后,画出来的图上显示的坐标不是完全的,请看图:
程序如下:x1=[17,16,12,10,9,6,5,4,3,2,1];y1=[1,2,3,4,5,6,9,10,12,16,17];get(gca,'xtick')pl...
程序如下:
x1=[17,16,12,10,9,6,5,4,3,2,1];y1=[1,2,3,4,5,6,9,10,12,16,17];get(gca,'xtick')
plot(x1,y1,'k.-');set(gca,'xticklabel',{'17','16','12','10','9','6','5','4','3','2','1'});set(gca,'yticklabel',{'1','2','3','4','5','6','9','10','12','16','17'});axis([1 17 1 17]);title('度特征');xlabel('节点的度');ylabel('特征值');
我想设置的x轴的坐标是[17,16,12,10,9,6,5,4,3,2,1],y轴的坐标是[1,2,3,4,5,6,9,10,12,16,17]。
急等高手指教,谢谢! 展开
x1=[17,16,12,10,9,6,5,4,3,2,1];y1=[1,2,3,4,5,6,9,10,12,16,17];get(gca,'xtick')
plot(x1,y1,'k.-');set(gca,'xticklabel',{'17','16','12','10','9','6','5','4','3','2','1'});set(gca,'yticklabel',{'1','2','3','4','5','6','9','10','12','16','17'});axis([1 17 1 17]);title('度特征');xlabel('节点的度');ylabel('特征值');
我想设置的x轴的坐标是[17,16,12,10,9,6,5,4,3,2,1],y轴的坐标是[1,2,3,4,5,6,9,10,12,16,17]。
急等高手指教,谢谢! 展开
3个回答
展开全部
1. x轴坐标逆向排列,可以使用set(gca,'XDir','rev')命令;
2. 由于这个坐标轴标签未涉及到字符串,可以直接设置一下标签的位置就行了,然后可以了。
如下所示:
x1=[17,16,12,10,9,6,5,4,3,2,1];
y1=[1,2,3,4,5,6,9,10,12,16,17];
plot(x1,y1,'k.-');
axis([1 17 1 17]);
set(gca,'XDir','rev')
set(gca,'xtick',[1,2,3,4,5,6,9,10,12,16,17])
set(gca,'ytick',[1,2,3,4,5,6,9,10,12,16,17])
title('度特征');
xlabel('节点的度');
ylabel('特征值');
这种得出来的结果坐标轴标签分布显示不是均匀分布的,不知道是不是你想要的答案。
2. 由于这个坐标轴标签未涉及到字符串,可以直接设置一下标签的位置就行了,然后可以了。
如下所示:
x1=[17,16,12,10,9,6,5,4,3,2,1];
y1=[1,2,3,4,5,6,9,10,12,16,17];
plot(x1,y1,'k.-');
axis([1 17 1 17]);
set(gca,'XDir','rev')
set(gca,'xtick',[1,2,3,4,5,6,9,10,12,16,17])
set(gca,'ytick',[1,2,3,4,5,6,9,10,12,16,17])
title('度特征');
xlabel('节点的度');
ylabel('特征值');
这种得出来的结果坐标轴标签分布显示不是均匀分布的,不知道是不是你想要的答案。
追问
请问有什么办法把它均匀分布吗?我希望可以使均匀分布的,谢谢!
追答
1.对x轴的实际坐标进行逆向排列,然后设置均匀坐标标签位置,设置坐标标签。
>> x1=[17,16,12,10,9,6,5,4,3,2,1];
>> y1=[1,2,3,4,5,6,9,10,12,16,17];
>> plot(x1,y1,'k.-');
>> axis([1 17 1 17]);
>> set(gca,'XDir','rev')
>> n=length(x1);
>> x=linspace(1,17,n);
>> set(gca,'xtick',x)
>> set(gca,'ytick',x)
>> set(gca,'xticklabel',{'1','2','3','4','5','6','9','10','12','16','17'});
>> set(gca,'yticklabel',{'1','2','3','4','5','6','9','10','12','16','17'});
>>
2.x轴实际坐标不逆转,只设置均匀坐标标签点,填充标签。
x1=[17,16,12,10,9,6,5,4,3,2,1];
y1=[1,2,3,4,5,6,9,10,12,16,17];
plot(x1,y1,'k.-');
axis([1 17 1 17]);
n=length(x1);
x=linspace(1,17,n);
set(gca,'xtick',x)
set(gca,'ytick',x)
set(gca,'xticklabel',{'17','16','12','10','9','6','5','4','3','2','1'});
set(gca,'yticklabel',{'1','2','3','4','5','6','9','10','12','16','17'});
>>
3. 对于此坐标标签标示的坐标点,并不对应实际的坐标,图像只是对应实际的坐标,实际坐标的间隔是不能改变的。
展开全部
你的问题在于,只设置了ticklabel而未设置tick,所以显示不全,而且位置也是错的。
xt = sort(x1);
yt = sort(y1);
for i=1:length(xt)
xtl{i} = num2str(xt(i));
ytl{i} = num2str(yt(i));
end
set(gca,'xtick',xt,'xticklabel',xtl,'ytick',yt,'yticklabel',ytl)
xt = sort(x1);
yt = sort(y1);
for i=1:length(xt)
xtl{i} = num2str(xt(i));
ytl{i} = num2str(yt(i));
end
set(gca,'xtick',xt,'xticklabel',xtl,'ytick',yt,'yticklabel',ytl)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询