tinnahust 发表于 2006-4-15 20:20

如何让非等距的刻度等距离显示

比如
plot(x,y)
t=(1:7);
t1=4.^t;
set(gca,'Xtick',t1);
可是画出来的图刻度4和16挤在一块,256和1024的间距又太大,可不可以让他们是等距的?如何做?

carltianji 发表于 2006-4-15 21:34

进行坐标变换

tinnahust 发表于 2006-4-15 22:00

怎么变换啊,能不能说的具体些?比如用什么命令?

cdwxg 发表于 2006-4-15 22:11

在一个横轴上?
如果间距大可以看下semilogx一类的可以缩短
但没明白你的意思
你的等间距
是axis还是什么?

happy 发表于 2006-4-16 08:12

比如说对x坐标去个log之类的就行了

tinnahust 发表于 2006-4-16 08:43

我说的是轴上刻度之间的间距,可是我的刻度不是10的幂,1,10,100之类,而是4的幂,4,16,64,256,....semilogx可以做到吗?

zjliu 发表于 2006-4-16 10:18

你可对x轴取4的对数

tinnahust 发表于 2006-4-17 08:49

zjliu兄能不能举个例子,我查了帮助,也在网上找了一些资料,没有看到对x轴取不是10的对数的例子,看来看去,都是10的对数。

aspen 发表于 2006-4-17 09:49

log2(x)/2

tinnahust 发表于 2006-4-17 11:13

我是要以4,16,64,256,。。。为x轴坐标,并且要这些数据在x轴上等距离显示,不是求4的对数

happy 发表于 2006-4-18 09:05

http://forum.vibunion.com/thread-3556-1-1.html已回复

射天狼 发表于 2006-5-26 20:24

以x轴为例,用get(gca)获取x轴的属性,x轴刻度的位置在xtick,显示的值在XTickLabel,可以自己指定赋值,在把XTickLabel赋值为manu即可安自己的要求实现赋值。

bainhome 发表于 2006-6-5 01:33

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);

多情清秋 发表于 2006-6-6 08:11

tinnahust、carltianji、cdwxg、happy、zjliu、aspen、射天狼、bainhome

多情清秋
06.6.6
页: [1]
查看完整版本: 如何让非等距的刻度等距离显示