作者ycy (好冷哦)
看板MATLAB
标题Re: [绘图] 长条图的Y轴问题
时间Sat Jul 7 02:33:36 2012
※ 引述《kronaking (胤羽)》之铭言:
: 小弟我想要画长条图
: 要画的内容类似 [10 8 13 126544 123474] 这样的数据
: YScale只有Linear跟LOG两种可以选择
: 用Linear的话,数值小的就变一条线了,看不出来他们的差异
: 用LOG的话,看图感觉不太直观,因为图是给别人看的
: 我想把Y轴刻度设定成
: [6 8 10 12 14 1000 100000 120000 122000 124000]
: 类似这样
: 我有尝试调整 Tick Locations & Labels
: 但是只有更改标示单位的位置,
: 而没有改变资料图形的长度
: 请问版上 诸位先进、大大们 有方法吗?感激不尽
如果是我会自己将y轴scale重新定义= =+
假设值较小的群组占y轴下方30%, 值较大的群组占y轴上方30%
下方30%的 mapping大概定为
0 % -> 6
30 % -> 15
上方30%的mapping大概定为
70 % -> 120000
100 % -> 129000
根据这个方法去重新normalize原本要画的值
y=[([10 8 13]-6)*0.3/9 ([126544 123474]-120000)*0.3/9000+0.7];
bar(y);
axis([0 6 0 1]);
set(gca,'YTick',[0:0.1:1]);
set(gca,'YTickLabel',[[6:3:15] 100 1000 10000 [120000:3000:129000]]);
中间三个刻度就随便放了@@
看起来有比较舒服吗 科科~ 其实我也想知道有没有简单一点的作法
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.169.32
1F:推 kronaking:我没想到可以用这一招.... 不过比较麻烦就是了 07/07 22:54
2F:→ kronaking:我已经考虑要不要画两张图再用小画家合并了...哈哈 07/07 22:55
3F:→ kronaking:感谢你大力帮助 07/07 22:55