如何让非等距的刻度等距离显示
比如plot(x,y)
t=(1:7);
t1=4.^t;
set(gca,'Xtick',t1);
可是画出来的图刻度4和16挤在一块,256和1024的间距又太大,可不可以让他们是等距的?如何做? 进行坐标变换 怎么变换啊,能不能说的具体些?比如用什么命令? 在一个横轴上?
如果间距大可以看下semilogx一类的可以缩短
但没明白你的意思
你的等间距
是axis还是什么? 比如说对x坐标去个log之类的就行了 我说的是轴上刻度之间的间距,可是我的刻度不是10的幂,1,10,100之类,而是4的幂,4,16,64,256,....semilogx可以做到吗?
你可对x轴取4的对数 zjliu兄能不能举个例子,我查了帮助,也在网上找了一些资料,没有看到对x轴取不是10的对数的例子,看来看去,都是10的对数。 log2(x)/2 我是要以4,16,64,256,。。。为x轴坐标,并且要这些数据在x轴上等距离显示,不是求4的对数 http://forum.vibunion.com/thread-3556-1-1.html已回复 以x轴为例,用get(gca)获取x轴的属性,x轴刻度的位置在xtick,显示的值在XTickLabel,可以自己指定赋值,在把XTickLabel赋值为manu即可安自己的要求实现赋值。 I think this code might be a better way:
%made by rocwoods in matwav
function xscalef(x,f,h)
%x轴任意坐标尺度下的图
%x:原始数据
%f:y关于x的函数句柄。h:x坐标尺度相应的函数句柄;
%例如:log尺度下,h=@(x)10.^x;
plot(x,f(h(x)));
set(gca,'xTicklabel',strcat(num2str(h(1)),'|',num2str(h(2)),'|',...
num2str(h(3)),'|',num2str(h(4)),'|',num2str(h(5)),'|',num2str(h(6)),'|',...<br>num2str(h(7)),'|',num2str(h(8))));
axis();
================================================
h=@(x)5*2.^x;
f=@(x)x;
xscalef(1:0.1:1000,f,h);
tinnahust、carltianji、cdwxg、happy、zjliu、aspen、射天狼、bainhome
多情清秋
06.6.6
页:
[1]