標籤:

APPs(004)Matlab出圖真的丑嗎?(b)

  • 所有代碼Matlab 2017a環境測試通過,大部分內容是2014b以後版本都能用,向前不確保兼容。
  • 終於到了(b),模仿Matlab版本命名的,所以不會有(c),再有內容我就升級新標題了。
  • 看到過百關注,加更一篇。
  • 歡迎規範轉載。歡迎投稿。

本期

1,生二胎

2,多胞胎

3,有個泰國Axes

4,孩子長個了,穿戴風格不能變(OOP)。

5,有個表哥,patch

接上回,

基本流程有了,那就是修飾了。

這就回到爸爸,啊不,Axes的上面了。

1,生二胎

% 大家長nfig1 = figure;nfig1.Units = centimeters;nfig1.Position = [5,5,8,8];nnn% Axes這個代有兩人nax1 = axes(Parent,fig1);nax2 = axes(Parent,fig1);nn% ax1是老大,但是要在大家長的懷抱里nax1.Units = centimeters;nax1.Position = [1.2,1.2,6,6];nax1.Box =on;nn% ax2是老二,地位和ax1一樣,但是個頭小nax2.Units = centimeters;nax2.Position = [5,5,1.7,1.7];nax2.Box = on;nnplt1 = plot(ax1,[1:0.1:10],sin([1:0.1:10]),r--);nplt2 = plot(ax2,[4:0.1:6],sin([4:0.1:6]),r--);n

作用:局部放大畫圖,封裝上面的內容為函數,局部放大圖函數

2,多胞胎

% 有個只生多胞胎的家庭nfig2 = figure;nax1 = subplot(311);nax2 = subplot(312);nax3 = subplot(313);nnplt1 = plot(ax1,[1:1:5]);nplt2 = plot(ax2,[1:1:10]);nplt3 = plot(ax3,[1:1:20]);n% 心靈感應,x軸放大會變的一致,其它關鍵詞y,xy,offnlinkaxes([ax1,ax2,ax3],x);n

3,有個泰國Axes

fig3 = figure;nax1 = axes(fig3);nyyaxis(ax1,left);nplt1 = plot([1:1:10],2*[1:1:10]);nyyaxis(ax1,right);nplt2 = plot([1:1:10],200*[1:1:10]+100);n

4,孩子長個了,穿戴風格不能變(OOP)

爸爸這代不容易,說到下一代,啊不,Line這一類。

fig4 = figure;nax1 = axes(fig4);nax1.Box = on;nplt = plot(ax1,[1:1:10]);nplt.LineStyle = --;nplt.LineWidth = 2;nplt.Marker = square;nplt.MarkerFaceColor = none;nplt.MarkerSize = 4;nplt.XDatanplt.YDatan% 突然發現結果中plt的數據長大了,其它設置不變nnplt.XData = [1:1:20];nplt.YData = 2*[1:1:20] + 5;nn% 這個是以後寫GUI不卡的秘密,只更新數據,如果所有都更新,會有延遲感。nnans =nn 1 2 3 4 5 6 7 8 9 10nnnans =nn 1 2 3 4 5 6 7 8 9 10n

5,有個表哥,patch

有個巨煩的設定,annotation 不是axes的兒子,是Axes的表哥,我金庸大神是對的,表哥都不是好人

要命的標註箭頭,後來我用Patch偽裝了他爹,這裡就是個思路,不提供代碼了。重點數據區域塗色等都可以用這個擴展,fill函數就是這個類。

fig5 = figure;nax1 = axes(fig5);naxis off;nplt = plot(ax1,[0:0.1:1],0.5*ones(11,1),b-o);npat = patch(ax1,[0.4, 0.5, 0.5, 0.4], [0.4, 0.4, 0.6, 0.6], [1 0 0]);npat.FaceAlpha = 0.2; % 橫線說明透明,注釋後再運行看看?npat.EdgeColor = none;n

千圖萬圖,還有很多圖,知道這些技巧會有什麼好處?

當然是裝b啦,啊不,嚴肅的說,你做過GUI就明白了。哈哈哈哈。


推薦閱讀:

matlab如何讀入混合變數格式的dat文件?
有正整數1~10,出現的概率分布給定,如何利用MATLAB按照各數字出現的概率輸出一個數字?
為什麼數學軟體要用自己的語言?
怎麼鍛煉 MATLAB 編程能力?
學術論文中用什麼軟體可以繪製這樣的圖?

TAG:MATLAB |