matlab中大figure怎样修改,操作Matlab的Figure窗口(一)
以前,我和很多人一樣,總是將數(shù)據(jù)保存到mat文件中。后來(lái)突然發(fā)現(xiàn),如果數(shù)據(jù)量不大的話,直接將Figure窗口中的圖形保存為fig文件是更好的選擇。fig文件與一般的圖像文件不同,并不是由圖像的像素構(gòu)成,它包含了當(dāng)前圖像的“元數(shù)據(jù)”,即每條曲線,每種符號(hào)的數(shù)據(jù)。所以,它既是圖形文件,也是數(shù)據(jù)文件。而且,與直接操縱mat文件中存儲(chǔ)的數(shù)據(jù)相比,操縱fig文件中的曲線更加直觀方便。
生活中常常遇到這樣的情況:需要將相同的數(shù)據(jù)用不同的方式進(jìn)行繪制,此時(shí),使用Figure窗口操縱fig文件非常方便。比如,打開(kāi)一個(gè)fig文件,得到如下的圖形:
如果需要將曲線橫軸的取值由原來(lái)的1:299更改為-149:149,可以這樣:
選中Figure窗口工具欄的“白色指針”(上圖中用紅色圈起來(lái)的按鈕),用它可以選取圖像中的各個(gè)對(duì)象(因?yàn)閒ig文件包含了元數(shù)據(jù),因此可以以面向?qū)ο蟮姆绞讲倏v圖像中的各個(gè)元素);
單擊藍(lán)色的曲線
回到Command Window,執(zhí)行
>> h = gco;
獲取當(dāng)前對(duì)象(get current object)的句柄,即選中的藍(lán)色曲線的句柄,利用該句柄重新設(shè)置曲線橫軸的取值:
>> set(h, 'XData', -149:149);
看下圖,橫坐標(biāo)取值變成了我們需要的形式。
再來(lái)一個(gè)例子,在Matlab文檔中有一個(gè)類(lèi)似的。有如下一個(gè)圖像
我們想把橫軸改為0, pi/2, pi, 3pi/2, 2pi這樣的形式。首先用“白色指針”選中當(dāng)前的Axes,
獲取其句柄
>> h = gco
設(shè)置XTick屬性
>> set(h, 'XTick',
0:pi/2:2*pi);
橫軸變成了下面的樣子:
接下來(lái),設(shè)置XTickLabel屬性,將橫軸的數(shù)值顯示為比較熟悉的形式(關(guān)于希臘字母的輸入,參見(jiàn)《為了希臘字母》):
>> set(h, 'XTickLabel', {'0',
'π/2', 'π', '3π/2', '2π'});
看下圖橫軸的效果
字體我們不滿意,修改起來(lái)并不麻煩,雖然可以用相應(yīng)的函數(shù)進(jìn)行修改,但GUI非常方便。用“白色指針”在橫軸上點(diǎn)擊右鍵,在彈出菜單上選擇Font(字體),會(huì)彈出一個(gè)字體對(duì)話框,用該對(duì)話框修改字體即可。效果如下:
如果我們還不滿意,想要把縱軸的“0”和“1”變成“0.0”,“1.0”,可以進(jìn)行下面的操作:
>> Y =
arrayfun(@(x)sprintf('%.1f', x), -1:0.2:1, 'UniformOutput',
false)
Y =
'-1.0'?'-0.8'?'-0.6'?'-0.4'?'-0.2'?'0.0'?'0.2'?'0.4'?'0.6'?'0.8'?'1.0'
>> set(h, 'YTickLabel', Y);
看看最終縱軸效果
最后看一個(gè)操作網(wǎng)格的例子。看下圖
上面一副子圖中,縱坐標(biāo)只標(biāo)注了0 -50 -100,因此,如果打開(kāi)grid,會(huì)相當(dāng)稀疏,如下
可以試試用
>> grid minor
將網(wǎng)格變密一些
感覺(jué)又太密了。解決這個(gè)問(wèn)題不麻煩,使用上面用過(guò)的手法即可。首先關(guān)掉grid
>> grid off
用“白色指針”選中當(dāng)前Axes,獲取其句柄,設(shè)置YTick屬性
>> h = gco;
>> set(h, 'YTick', -100:25:0);
再次打開(kāi)grid,效果就好多了
上面的例子都是我在實(shí)際中遇到的。Matlab Figure窗口強(qiáng)大的能力簡(jiǎn)化了很多操作。以后遇到新的例子還會(huì)記錄下來(lái)。
總結(jié)
以上是生活随笔為你收集整理的matlab中大figure怎样修改,操作Matlab的Figure窗口(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA中for循环写杨辉三角,java
- 下一篇: 编写 matlab怎么调用 8 点和 1