台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下
臺灣國立大學郭彥甫Matlab教程筆記(12) advanced 2D plot 下
上文記錄的是關于統計的圖標的繪制
下面我們來到另一個模塊:顏色
fill()填充函數
功能:某一個封閉曲線,圖上特定顏色
舉例:把一個停車標志圖上顏色
分析:首先要繪制一個八邊形,根據前幾次筆記,我們知道了幾變形的繪制方法,
可以通過linspace()函數,它產生的就是一個角度,可以用來當作極坐標系的theta。按照之前的想法,我們會這樣來做
沒錯,我們確實繪制出來八邊形,如下圖,但這不是我們想要的
所以,我們還是好好聽老師講吧。
同樣要繪制一個八邊形,同樣是把2*pi的角度分成8份,但是每一份還要一分為二,如下圖
接著分析:
解釋: 這個間隔用t表示,
如何理解:t=[1:2:15]’*pi/8
意思是[1:2:15]是一個vector,間隔是2:1、3、5、7、9、11、13、15,然后再乘上pi/8,就是八個角度,圖上的八個角
例程:
t=(1:2:15)'*pi/8;%畫八邊形的八個角 y=sin(t); x=cos(t); fill(x,y,'r'); axis square off; text(0,0,'STOP','color','w','fontsize',80,'fontweight','bold','horizontalalignment','center');作業:繪制一個等待的標志
我的練習結果:
我的練習代碼:
t=[0:3]*pi/2;%四個點 y=sin(t);%繪制四條邊 x=cos(t); fill(x,y,'y');%填充顏色 axis square off;%去掉坐標軸邊框 text(0,0,'WAIT','color','k','fontsize',80,'fontweight','bold','horizontalalignment','center');Color space顏色空間
[R G B]向量來決定顏色
每一個坐標值介于0-1之間,同樣可以對照到0~255
為什么要把0-1轉換成0-255,因為我們有一張顏色表,需要在這里選擇配色
每一個顏色使用6位的十六進制的數字表示。
這張表的功能是什么呢?根據這張表上的數字可以選擇對應的顏色。
練習題:怎樣涂上顏色?
給出源程序,未更改配色,需要你來更改。
G=[46 38 29 24 13]; S=[29 27 17 26 8]; B=[29 23 19 32 7]; h=bar(1:5,[G',S',B']); title(' medal count for top 5 contries in 2012 olympics'); ylabel('number of medals'); xlabel('country'); legend('gold','silver','bronze');給出的程序執行的結果配色不對,需要我們來修改
分析:我們需要找到物件的handle,然后設置handle
1,今天學會了bar的索引,不是用大括號,而是用小括號。
2,當我使用RGB顏色的時候只能使用0-1之間的,而0-255之間的會報錯
查到灰色的是[0.5,0.5,0.5]
執行這句話才運行通過:
修改完的效果:
源代碼:
matlab顏色對照表(0-1之間取值)
matlab顏色對照表(0-1之間取值)
下一個:
visualizing data as an image :imagesc()顏色可視化
1.display values of a matrix as an’image’
這個指令常用來,讓縱軸變成另外一個維度,看起來更直觀
使用 imagesc()之前:
使用Imagesc()之后:
例程:
[x,y]=meshgrid(-3:.2:3,-3:.2:3); z=x.^2+x.*y+y.^2; surf(x,y,z); box on; set(gca,'fontsize',16); zlabel('z'); xlim([-4 4]);xlabel('x'); ylim([-4 4]);ylabel('y');執行完上述代碼的結果:
imagesc(z); axis square; xlabel('x'); ylabel('y');這段程式碼執行完的結果:
我們看一下
Color Bar and Scheme
既然z軸是顏色軸,這個z軸的數值怎么知道
只要 下一個指令colorbar;
執行完這個指令后
可不可以更改顏色?顏色就改變了
colormap(hot);%暖色系
colormap(cool);%冷色系
colormap(gray);%灰色
剛才說到colormap,matlab中有很多內建的colormap
Built-in Colormaps
怎么使用呢?
colormap([name]);
那colormap是個什么東西?
colormap說穿了就是一個寫好的矩陣
可以下指令查看
a=colormap(prism)
會得到colormap的矩陣
作業題:
這里有幾行代碼,你要寫幾行代碼,讓結果看起來是圖上的樣子
給出的代碼:
x=[1:10;3:12;5:14]; imagesc(x); colorbar;執行完最初的代碼,呈現的是下圖這個樣子
參考的官方文檔:colormap官方文檔
這道題考察的是自定義顏色圖
做法:需要給出三列數字,這些數字指定顏色,第一列是R,第二列是G,第三列是B。
如圖是讓顯示綠色。
自己做的圖的效果長這樣:
附上自己的源代碼:
x=[1:10;3:12;5:14]; imagesc(x); map=[ 0 1 0;0 0.9 0;0 0.6 0;0 0.5 0;0 0.4 0;0 0.2 0]; colormap(map);colorbar;[總結】
今天這篇文章記錄了有關顏色的matlab函數一部分。
fill()填充函數,顏色修改,imagesc()函數,colormap()函數等。
總結
以上是生活随笔為你收集整理的台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人寿保险的纯保费由哪部分构成
- 下一篇: 台湾国立大学郭彦甫Matlab教程笔记(