appleseed05 发表于 2007-9-2 15:04

matlab绘图x轴能否使用两行标注

请问:matlab在标注坐标轴的时候,可不可以在x轴上标注两行,比方说x轴坐标第一行是倍频,第二行是转速。类似于下面这张图

昨天问了一下,看来matlab不支持这个功能阿:@L

[ 本帖最后由 ChaChing 于 2010-2-23 07:50 编辑 ]

twomao 发表于 2007-9-3 20:58

回复 #1 appleseed05 的帖子

楼主,请问1楼的图是用什么软件画的呀?

[ 本帖最后由 ChaChing 于 2010-2-23 08:10 编辑 ]

yanice 发表于 2007-9-3 21:18

回复 #1 appleseed05 的帖子

看看手动添加可以不可以
我没弄过 提个醒而已

appleseed05 发表于 2007-9-4 16:45

1楼的图是用photoshop:loveliness::loveliness::lol

手动添加自然是可以的,但是我的图很多,工作量非常大

[ 本帖最后由 ChaChing 于 2010-2-23 08:09 编辑 ]

花如月 发表于 2007-9-4 18:49

只要肯找办法总是会有的,下边的程序基本可以满足楼主的要求。只是给你提供一种思路,实际应用可能需要改进。
clear;clc; a=1:10; b=10*a;
plot(a,a+1);grid on; hold on
for i=1:length(a)
    a=text(i,1.2,num2str(b(i))); set(a,'HorizontalAlignment','center')
end

[ 本帖最后由 ChaChing 于 2010-2-23 08:12 编辑 ]

eight 发表于 2007-9-4 20:12

不错不错,我当时也是马上想到用 text,不过由于这台破电脑安装不了 matlab,所以没有测试。另外,我也想过是不是用 xlabel 也能做到呢?即能否使用 2 维变量实现?

[ 本帖最后由 ChaChing 于 2010-2-23 08:13 编辑 ]

花如月 发表于 2007-9-4 20:17

回复 #6 eight 的帖子

下午费了快2小时,才搞出来。xlabel我也想过,不过位置不好对齐。xtick和xticklabel又必须是一维的所以,只有用循环了。谁有更好的办法继续贴:victory:

[ 本帖最后由 ChaChing 于 2010-2-23 08:29 编辑 ]

eight 发表于 2007-9-4 20:22

如果不想用循环,使用 arrayfun 命令就可以了

[ 本帖最后由 ChaChing 于 2010-2-23 08:14 编辑 ]

lxq 发表于 2007-9-4 21:33

两位版主做得不错~~
嘿嘿
我也学习学习。

appleseed05 发表于 2007-9-5 12:14

这个确实不错,xlabel我倒是试过,但是搞出来怎么看怎么不爽就放弃了

向两位版主学习了:lol :lol

twomao 发表于 2007-9-5 20:20

回复 #7 花如月 的帖子

学习版主,刻苦钻研的精神。

[ 本帖最后由 ChaChing 于 2010-2-23 08:29 编辑 ]

octopussheng 发表于 2007-9-6 08:47

呵呵,花花和eight真是强啊,佩服,我也学习到了!

alljoyland 发表于 2007-9-17 20:35

可以这样子伪装拉
在下面画一个同样的图,
设置y方向的宽度显示宽度相当的小,就可以另外选择tick

是伪装而已
-------------------
具体代码,使用matlab7以上的,手工操作下,生成代码,学习下就可以了

花如月 发表于 2007-9-18 09:15

回复 #13 alljoyland 的帖子

:@L 没太看明白。还是这个例子,把你的代码弄上来让我们大家也学习了一下吧

[ 本帖最后由 ChaChing 于 2010-2-23 08:34 编辑 ]

咕噜噜 发表于 2007-9-18 15:28

为什么一个轴上标注两行那,你能不能变通一下两个y轴多好,左右一边一个,要不x上下各一个,都好啊,何必这么麻烦
页: [1] 2
查看完整版本: matlab绘图x轴能否使用两行标注