作者sppmg (sppmg)
看板MATLAB
标题Re: [绘图] 座标轴数值及划分
时间Sat Apr 22 04:45:03 2017
我有点忘记怎设定了,所以重新google一遍。
下面附上google 关键字。
※ 引述《Acchannyan (ZeFates)》之铭言:
: 大家好 最近因为要交专题的结案报告
: 应老师要求使用matlab来画温度对时间的图
: x轴的部分是时间 数值有到2万左右
: 因此画好预设的都是用科学记号表示
: 不知道是否能用正常的20000这样显示?
google: matlab format axis numbers
ans:
set(gca,'XTickLabel',num2str(get(gca,'XTick').'))
matlab 似乎没有特别设定格式的指令。不过提供了设定标签(XTickLabel)相关的指令
(set(gca,'XTickLabel', [...] ) or xticklabels )
所以这个方法就是将现有标签取出转字串再放入。
其实你有 2e4(s) 这麽长,何不考虑用 (hr)小时 或是 (ks) 1000s 这样的单位呢!
那麽多 0 ,不是教主不需要啦!
: 第二个问题是我想在图上画出某个区域
: 底色改成其他颜色
: 例如x轴 200到4000的整个区域要为蓝色底色 其余则是预设的白色这样
: 之前是用小画家慢慢拉 不知道能不能用code写
: 恳请开示
: -----
: Sent from JPTT on my Asus ASUS_Z012DA.
我第一个想到就是画个方块。google 後也是如此
google: matlab figure background color part
ans: 使用 patch 画多边形
不过有两点要注意:
1. matlab 轴范围会自动调整,多边形点之 y 值看是要手动指定或是先画 data,
取轴值後再画多边形均可。
2. 重叠问题。既然是背景,多边形应该在後面。所以解决方法基本分两种。
a. 先画多边形再画线。(with hold on)
b. 先画线再画多边形,然後更新线值或是重排两者关系。
详细方法下面网页有详细列表。(我就不缩了,google keyword 也找得到)
https://www.mathworks.com/matlabcentral/newsreader/view_thread/114351
其中我最喜欢的是:
-------------------------
2) Specify axes children instead of using UISTACK :
figure
p1 = plot([1 5],[2 7]);
s = patch([2 4 4 2],[3 3 4 4],[0.8 0.8 0.8]);
set(gca,'children',[p1 s])
-------------------------
(画完多边形记得再检查一次 ylim 是否变动。)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.32.188.151
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1492807508.A.DA5.html
※ 编辑: sppmg (114.32.188.151), 04/22/2017 05:06:32
1F:推 Acchannyan: 第一个问题其实是因为时间是年份 由於某些年代有点尴 04/22 12:52
2F:→ Acchannyan: 尬 才想用原本的表示~感谢指导! 04/22 12:52