声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4103|回复: 13

[编程技巧] 如何让非等距的刻度等距离显示

[复制链接]
发表于 2006-4-15 20:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
比如
  1. plot(x,y)
  2. t=(1:7);
  3. t1=4.^t;
  4. set(gca,'Xtick',t1);
复制代码

可是画出来的图刻度4和16挤在一块,256和1024的间距又太大,可不可以让他们是等距的?如何做?
回复
分享到:

使用道具 举报

发表于 2006-4-15 21:34 | 显示全部楼层
进行坐标变换
 楼主| 发表于 2006-4-15 22:00 | 显示全部楼层
怎么变换啊,能不能说的具体些?比如用什么命令?
发表于 2006-4-15 22:11 | 显示全部楼层
在一个横轴上?
如果间距大可以看下semilogx一类的可以缩短
但没明白你的意思
你的等间距
是axis还是什么?
发表于 2006-4-16 08:12 | 显示全部楼层
比如说对x坐标去个log之类的就行了
 楼主| 发表于 2006-4-16 08:43 | 显示全部楼层
我说的是轴上刻度之间的间距,可是我的刻度不是10的幂,1,10,100之类,而是4的幂,4,16,64,256,....semilogx可以做到吗?
发表于 2006-4-16 10:18 | 显示全部楼层
你可对x轴取4的对数
 楼主| 发表于 2006-4-17 08:49 | 显示全部楼层
zjliu兄能不能举个例子,我查了帮助,也在网上找了一些资料,没有看到对x轴取不是10的对数的例子,看来看去,都是10的对数。
发表于 2006-4-17 09:49 | 显示全部楼层
log2(x)/2
 楼主| 发表于 2006-4-17 11:13 | 显示全部楼层
我是要以4,16,64,256,。。。为x轴坐标,并且要这些数据在x轴上等距离显示,不是求4的对数
发表于 2006-4-18 09:05 | 显示全部楼层
发表于 2006-5-26 20:24 | 显示全部楼层
以x轴为例,用get(gca)获取x轴的属性,x轴刻度的位置在xtick,显示的值在XTickLabel,可以自己指定赋值,在把XTickLabel赋值为manu即可安自己的要求实现赋值。
发表于 2006-6-5 01:33 | 显示全部楼层
I think this code might be a better way:
  1. %made by rocwoods in matwav
  2. function xscalef(x,f,h)
  3. %x轴任意坐标尺度下的图
  4. %x:原始数据
  5. %f:y关于x的函数句柄。h:x坐标尺度相应的函数句柄;
  6. %例如:log尺度下,h=@(x)10.^x;
  7. plot(x,f(h(x)));
  8. set(gca,'xTicklabel',strcat(num2str(h(1)),'|',num2str(h(2)),'|',...
  9. num2str(h(3)),'|',num2str(h(4)),'|',num2str(h(5)),'|',num2str(h(6)),'|',...<br>num2str(h(7)),'|',num2str(h(8))));
  10. axis([1 8 0 h(9)]);
复制代码


================================================
  1. h=@(x)5*2.^x;
  2. f=@(x)x;
  3. xscalef(1:0.1:1000,f,h);
复制代码


发表于 2006-6-6 08:11 | 显示全部楼层
tinnahust、carltianji、cdwxg、happy、zjliu、aspen、射天狼、bainhome

多情清秋
06.6.6
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 07:22 , Processed in 0.059480 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表