MATLAB-画图汇总
畫圖之前建議先想好自己要畫什么樣的圖,再去找相關代碼。
本文匯總了一些matlab畫圖代碼和修飾指令。
畫圖指令
連線圖-plot
? ? ? ? 連線圖就是連接一個又一個的點,最后形成一個圖(折線圖),但是當對進行限制,比如x以一個極小的值從一個點增加到另一個點(例如:x=1:0.01:10),那么他們的連線就是一段近似的曲線。
? ? ? ? 所以連線圖可以進行變換,可以畫成折線圖或者曲線圖。
????????所以以下兩段代碼就很不一樣
y1=sin(x1);x1=0:0.1*pi:2*pi; %x是以0.1*pi的增值,一點一點的加到2*pi,pi就是圓周率Π的matlab寫法plot(x1,y1); y2=sin(x2)x2=0:2*pi; %x是以1為增值,一點點的增加到piplot(y2)? ? ? ? 于是把這兩個代碼合并畫在一個圖上
x1=0:0.1*pi:2*pi;y1=sin(x1);plot(x1,y1);hold on; %hold on用于連接這兩個圖,是第二張圖不覆蓋第一張圖,使第二張圖畫在第一張圖上x2=0:2*pi;y2=sin(x2)plot(x2,y2)?很明顯,一個是較光滑的連線圖,一個是較不光滑的連線圖
plot(x)?
x為向量時,以該元素的下標為橫坐標 元素值為縱坐標繪出曲線
示例:
x=[1 2 3 5 10 8];figure(1);plot(x);plot(x,y)
? ?x為實數二維數組時,則按列繪制每列元素值相對其下標的曲線,?曲線數等于x數組的列數。
x=[1 3 5];y=[4 7 8];figure(1);plot(x,y);??y=f(x)的函數也可以用plot(x,y)
示例:
x=0:pi/100:2*pi; %x是從0開始 以pi/100的間隔增加至2piy=2*exp(-0.5*x).*sin(2*pi*x);figure(1);plot(x,y);?y=f(x)?x=f(t)的函數也可以用plot(x,y)來畫
示例:
t = -pi:pi/100:pi;x = t.*cos(3*t);y = t.*sin(t).^2;plot(x,y)plot(x1,y1.x2,y2);
? ? ? ?繪制以x1為橫坐標、y1為縱坐標的曲線1,?以x2為橫坐標、y2為縱坐標的曲線2,等等。?其中x為橫坐標,y為縱坐標,繪制y=f(x)函數曲線。
示例:
x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];figure(1);plot(x1,y1,'r',x2,y2,'b');plotyy
繪制雙縱坐標圖
示例:
x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];plotyy(x1,y1,x2,y2);plot3(x,y,z)
繪制三維連線圖
示例:
t=1:0.1:10;x=t;y=sin(t);z=cos(t);figure(1);plot3(x,y,z)對plot線的修飾
| 指令 | 線性 |
| - | 實線 |
| – | 虛線 |
| : | 點線 |
| -. | 點劃線 |
| . | 用點號標出數據點 |
| ○ | 用圓圈標出數據點 |
| × | 用叉號標出數據點 |
| + | 用加號標出數據點 |
| s | 用小正方形標出數據點 |
| D | 用菱形標出數據點 |
| V | 用下三角標出數據點 |
| ^ | 用上三角標出數據點 |
| < | 用左三角標出數據點 |
| > | 用右三角標出數據點 |
| v | 用六角形標出數據點 |
| P | 用五角形標出數據點 |
| 指令 | 效果 |
| 'LineWidth’ | 指定線寬 |
| 'MarkerSize' | 指定標記大小 |
示例:
x=[1 2 3 5 10 8];figure(1);plot(x,':+','LineWidth',1.5,'MarkerSize',10); %用線寬為1.5的點線,用大小為10的加號標出數據點直方圖-bar
? ? ? ?bar(y) 創建一個條形圖,y 中的每個元素對應一個條形。如果 y 是 m×n 矩陣,則 bar 創建每
組包含 n 個條形的 m 個組。
累計式直方圖
???????即一個條形里面是各個成分的累計
- 累計式垂直直方圖
- ?累計式水平直方圖
分布式直方圖
- 分布式垂直直方圖
?
- 分布式水平直方圖
餅狀圖-pie
pie(x)
pie(X) 使用 X 中的數據繪制餅圖。餅圖的每個扇區代表 X 中的一個元素。
示例:
X=[2,2,1,5]; figure(1); pie(X);pie(x,y)
若要偏移第n個餅圖切片,請將相應的y元素設置為1,不偏移的部分為0。 y中元素與x中元素順序相對應。
示例:
X=[2,2,1,5]; y = [0 1 0 1]; figure(4) pie(X,y) %顯然第二個,第四個數要進行偏移,得到部分偏移的餅狀圖pie(x,{'a','b','c'})
{}內的abc為文字描述,會替代概率百分比
示例:
clc;clear; X=[0.07,0.93,1]; figure(1); pie(X,{'a','b','c'});pie3(x)
繪制三維餅狀圖
示例:
x=[2,2,1,5]; figure(1) pie3(x,y)pie3(x,y)?
繪制偏移的三維餅狀圖,y代表是否發生偏移,0為不偏移,1為偏移。x為所需要繪制的圖形
示例:
x=[2,2,1,5]; y = [0 1 0 1]; figure(1) pie3(x,y)散點圖
scatter(x,y)
繪制空心圓圈圖,俗稱氣泡圖
示例:
clc;clear;x=1:4;y=[1 3 5 4]figure(1);scatter(x,y);?修飾:
| 代碼 | 效果 |
| scatter(x,y,a) | a為常數,標識圈的大小 |
| scatter(x,y,‘b’) | 'b'為修飾顏色,b為藍色 |
| scatter(x,y,'MarkerFaceColor') | 'MarkerFaceColor'為實心 |
示例:
clc;clear;x=1:4;y=[1 3 5 4]figure(1);scatter(x,y,1000,'MarkerFaceColor','b');gscatter(x,y)
繪制實心散點圖
示例:
clc;clear;x=1:4;y=[1 3 5 4]figure(1);gscatter(x,y)離散桿圖-stem
常見畫法為:stem(x)或者stem(x,y),其中當這里的x,y都是常數是將繪制在某點的離散桿圖
示例:
clc;clear; x =linspace(0,2*pi,60); %x的線性間距 a = sin(x); b = cos(x); stem(x,a) hold on stem(x,b) y=[1 2 2 5 5 6 8 9 7 2]; stem(y);?
正態分布圖
normpdf
畫標準正態分布概率密度函數
示例:
x = -5:0.01:5;y = normpdf(x, 0, 1); %生成 均值為0,方差為1的正態分布數plot(x,y); %畫圖grid on; %加方格填充部分:
area(x,y)函數常用于為圖像填充顏色
x = -5:0.01:5;y = normpdf(x, 0, 1); %均值為0,方差為1plot(x,y); %畫圖grid on; %加方格 hold on;x2=-1:0.01:1;y2 = normpdf(x2, 0, 1); %均值為0,方差為1area(x2,y2) %顏色填充normcdf?
繪制正態分布函數,是對上面函數的累積求和
x = -5:0.01:5;y = normcdf(x, 0, 1); %均值為0,方差為1plot(x,y);grid on;histfit
畫正態擬合的直方圖
示例:
rng default; r = normrnd(10,1,50,1); % 用均值 10 和方差 1 從正態分布生成大小為 50 的樣本。histfit(r)normplot
正態概率圖,常用于證明一組數據是否服從正態分布。
其中:橫軸為變量區間,縱軸為累計概率分布。紅色點劃線為根據分析數據均值和方差構建的正式正態分布線,藍色點為分析樣本點,越接近于直線說明樣本正態特性越好。
示例:
clc;clear; y=[580 564 595 560 577 526 564 571 552 550 563 554 540 551 584 554 581 553 557 533 551 514 611 570 540 563 529 585 566 563 561 558 564 570 523 582 566 535 584 549 558 563 551 601 567 553 559 552 563 553 597 553 520 534 567 532 566 576 555 568 538 556 552 546 526 567 544 558 543 559 549 585 591 536 530 546 523 572 572 552 565 562 552 549 567 596 539 595 518 539 597 559 551 550 581 543 597 551 537 544 565 547 534 551 587 563 557 538 575 540 582 549 537 551 542 601 541 591 569 548 575 558 548 550 572 581 589 551 534 595 574 563 567 555 572 560 578 566 571 563 586 568 519 569 559 570 543 548 569 549 606 593 573 582 539 608 581 529 536 557 563 587 550 553 538 588 582 541 559 565 554 536 576 597 575 533 545 586 592 566]; normplot(y);多子圖-subplot
subplot(m, n, k)
使(m *n)幅子圖中第k個子圖成為當前圖
示例:
x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];subplot(2,2,1); %在2*2的圖窗中繪制第一個子圖,即左上角的圖plot(x1,y1);subplot(2,2,2); %在2*2的圖窗中繪制第二個子圖,即右上角的圖plot(x2,y2);subplot(‘postion’, [left, bottom, width, height])
?在指定的位置上開辟子圖,并成為當前圖
示例:
x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];subplot('position',[0.2 0.2 0.3 0.3]); plot(x1,y1);三維網格圖-mesh
先解釋meshgrid函數
meshgrid是Matlab中用于生成坐標網絡采樣點的函數。
語法為:
- [x,y]=meshgrid(a,b)
即:復制網格向量x和y生成矩陣網格(a,b)的坐標,其中,a,b,可以為常數(1:10,1:20等等這樣的數),也可以是a=x,b=y。具體可看下面的代碼示例
- [x,y]=meshgrid(c)
即:復制網格向量x和y生成矩陣網格(c,c)的坐標
- [x,y,z]=meshgrid(x,y,z)
即:復制網格向量x和y生成矩陣網格(x,y,z)的坐標
所以,三維網格圖畫法如下:
x=1:0.1:10; y=1:0.1:10; [x, y] = meshgrid(1:10,1:10); %這里的1:10和1:10,改成1:0.1:10和1:0.1:10,會使整個圖更加曲,更加平滑,網格也就更細 %改成:[x,y]=meshgrid(x,y),同樣也是對的,而且可能更合理z=x.^2-y.^2; mesh(x,y,z)三維曲面圖-surf
畫圖指令
- surf(x,y,z)
? ? ? ?surf函數和mesh函數的調用格式基本相同兩者的區別在于mesh繪出彩色的線,而surf繪出彩色的面除了surf函數圖形外,還有其他子函數,可以對在原本圖形上繪制更多功能性曲線。
?示例:
[x,y] = meshgrid(-5:0.5:5); z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z; surf(x,y,z)- surfc(x,y,z)
可以繪制帶有等高線的三維表面圖形
示例:
[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;surf(x,y,z) hold on;surfc(x,y,z)- ?surfl(x,y,z)
繪制帶有陰影的三維表面圖形
示例:
[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;surf(x,y,z) hold on;surfl(x,y,z)畫圖修飾
- 模糊處理
| 代碼 | 效果 |
| shading faceted | 默認效果,代碼不寫也可以 |
| shading flat | 去掉網格線 |
| shading interp? | 色彩更平滑過渡 |
示例:
clc;clear;[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;subplot(1,3,1)surf(x,y,z) hold on;title('1') %默認效果,代碼我沒寫[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;subplot(1,3,2)surf(x,y,z) shading flat;hold on;title('2') %模糊度2[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;subplot(1,3,3)surf(x,y,z)shading interp;title('3') %模糊度3如圖所示
- ?畫面凍結
凍結屏幕高寬比,使得一個三維對象的旋轉不會改變坐標軸的刻度顯示
axis vis3d示例:
[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;axis vis3d;surf(x,y,z)?修飾指令
圖像修飾
基礎畫圖指令
figure():繪制圖窗hold on:保持打開的命令hold off:關閉圖形保持功能顏色修飾
- 指令調色
| 指令 | 顏色 |
| b | 藍色 |
| g | 綠色 |
| r | 紅色 |
| c | 青色 |
| m | 品紅 |
| y | 黃色 |
| k | 黑色 |
示例:
x=[1 2 3 5 10 8];figure(1); plot(x,'g'); %‘g’ 說明是綠色 x=[1 2 3 5 10 8]; figure(1); plot(x,'r'); %‘r’是紅色- RGB調色
部分RGB調色對照表,僅供參考。
| 顏色 | R | G | B |
| 黑色 | 0.00 | 0.00 | 0.00 |
| 灰色 | 0.75 | 0.75 | 0.75 |
| 石板灰 | 0.44 | 0.50 | 0.41 |
| 暖灰色 | 0.50 | 0.50 | 0.41 |
| 白色 | 1.00 | 1.00 | 1.00 |
| 天藍色 | 0.94 | 1.00 | 1.00 |
| 淡黃色 | 1.00 | 0.92 | 0.80 |
| 紅色 | 1.00 | 0.00 | 0.00 |
| 珊瑚紅 | 1.00 | 0.50 | 0.31 |
| 磚紅 | 0.70 | 0.13 | 0.13 |
| 粉紅 | 1.00 | 0.75 | 0.80 |
| 桔紅 | 1.00 | 0.27 | 0.00 |
| 黃色 | 1.00 | 1.00 | 0.00 |
| 金黃 | 1.00 | 0.84 | 0.00 |
| 橙色 | 1.00 | 0.38 | 0.00 |
| 橘黃 | 1.00 | 0.50 | 0.00 |
| 淡黃 | 0.96 | 0.87 | 0.70 |
| 棕色 | 0.50 | 0.16 | 0.16 |
| 巧克力色 | 0.82 | 0.41 | 0.12 |
| 褐色 | 0.63 | 0.32 | 0.18 |
| 藍色 | 0.00 | 0.00 | 1.00 |
| 鈷色 | 0.24 | 0.35 | 0.67 |
| 深藍 | 0.10 | 0.10 | 0.44 |
| 祖母綠 | 0.00 | 0.78 | 0.55 |
| 天藍 | 0.53 | 0.81 | 0.92 |
| 綠色 | 0.00 | 1.00 | 0.00 |
| 草綠 | 0.50 | 1.00 | 0.00 |
| 青色 | 0.00 | 1.00 | 1.00 |
?示例:
x=[1 2 3 5 10 8];figure(1);plot(x,'color',[0.1 0.1 0.9]); %繪制帶顏色的圖背景修飾
- 網格線
-
背景顏色
?具體改成什么顏色可根據RGB慢慢調
? ? ? ? 2.更改figure內背景色
x=[1 2 3 5 10 8];figure(1);set(1,'color','white') %figure外為白色colordef black; %figure內為黑色plot(x); %繪圖?背景色還可以是透明色
x=[1 2 3 5 10 8];figure(1);set(1,'color',[0 0.5 0]) %figure外墨綠色colordef none; %figure內是透明色plot(x);坐標指令
axis函數
axis函數可以調整圖的坐標軸范圍和縱橫比等等。
axis([xmin xmax ymin ymax zmin zmax]);? ? ? ?如果只給出前四個參數,則按照給出的x、y軸的最小值和最大值選擇坐標系范圍,繪制出合適的二維曲線。如果給出了全部參數,則繪制出三維圖形。
axis函數的功能豐富,其常用的用法有:
圖像標識
圖名
- title(‘xx’)命名
坐標名
- xlabel(‘xx’)x軸標注?
- ylabel(‘xx’)y軸標注
示例:
figure(1)xlabel('這是x軸')ylabel('這是y軸')圖形文本注釋
text函數
text語法包括:
- 添加文字描述
text()函數用來給圖加上說明性文字。格式:text(x,y,'文字')或者text(x,y,[ '文字' ])
單個文字可以用text(x,y,'文字'),多段文字可以用text(x,y,[ '文字' ,'文字']),其中x,y都是具體位置,是具體數
- \fontsize{}-?字體大小
- \fontweight{}?-?字符粗細
- \fontname{}-?字體名稱? ? \arg-指定字體風格
字體修飾樣式:\fontname{arg}
- 位置標識
| ^{ } | 上標 | 'text^{text}' |
| _{ } | 下標 | 'text_{text}' |
| \bf | 粗體 | '\bf text' |
- color -?文本顏色
- \leftarrow 和\rightarrow-左右箭頭
示例:
x=0:0.05*pi:2*pi;y=sin(x);figure(1);plot(x,y);text(pi,0,'\leftarrow\fontsize{20}\fontname{Bf}這是正弦');圖例
?legend(‘文字’)加圖例
圖例的具體屬性設置可以在figure窗口工具欄-插入欄進行調整
想要詳細的圖例調用,可以打開屬性檢查器。
在這里面可以調大小改顏色等等。?
(能簡單在圖窗調,為啥要辛苦記代碼~)?
總結
以上是生活随笔為你收集整理的MATLAB-画图汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python处理实例_python处理x
- 下一篇: javascript --- 函数的柯