MATLAB二維繪圖(四)其他特殊的二維繪圖函數介紹及用法


MATLAB二維繪圖(四)其他特殊的二維繪圖函數介紹及用法

1、使用semilogy、semilogx和loglog繪制指數函數的圖像,示例:

%% 對指數進行繪圖,使用不同的繪圖函數
clear; clc; close all;
x = logspace(-1,1,100);  % 產生間距,在10^{-1}到10^{1}的100個點
y = x.^2;
subplot(2,2,1); 
plot(x,y);   % 正常使用plot進行繪圖
title('Plot');
subplot(2,2,2); 
semilogx(x,y);    % 對x軸繪制間距為10的指數次方
title('Semilogx');
subplot(2,2,3); 
semilogy(x,y);   % 對y軸繪制間距為10的指數次方
title('Semilogy');
subplot(2,2,4); 
loglog(x, y);   % 對x,y繪制
title('Loglog');
set(gca,'XGrid','on');   % 顯示網格

效果顯示:
指數圖
2、使用hist函數繪制柱狀圖,示例:

%% 顯示柱狀圖
clear; clc; close all;
y = randn(1,100);   % 產生隨機數,1000個
subplot(2,1,1);
hist(y,10);  % 顯示柱狀圖
title('Bins = 10');
subplot(2,1,2);
hist(y,50);
title('Bins = 50');

效果顯示:
柱狀圖
3、使用bar函數繪制條形圖,示例:

%% 使用bar函數畫條狀圖
clear; clc; close all;
x = [1 2 5 4 8]; 
y = [x;1:5];
subplot(1,3,1); 
bar(x);   % 一維條狀圖
title('A bargraph of vector x');

subplot(1,3,2); 
bar(y); % 二維條狀圖
title('A bargraph of vector y');

subplot(1,3,3); 
bar3(y);  % 三維條狀圖
title('A 3D bargraph');

效果顯示:
條形圖
4、使用pie函數繪制餅狀圖,示例:

%% 餅狀圖
clear; clc; close all;
a = [10 15 20 30];   % 數據的占比
subplot(1,3,1); 
pie(a);  % 畫出餅狀圖,並且自動計算出百分比
subplot(1,3,2); 
pie(a, [0,0,0,1]);   % 將第四個餅狀圖提取出來
subplot(1,3,3); 
pie3(a, [0,0,0,1]);  % 畫三維餅狀圖,並且最后一個提取出來

效果顯示:
餅狀圖
5、使用polar函數繪制極坐標圖,示例:

%% 極坐標圖
clear; clc; close all;
x = 1:100; 
theta = x/10; 
r = log10(x);
polar(theta,r);  % 只需要給出角度和半徑即可

效果顯示:
極坐標圖
6、使用stairs函數繪制階梯圖,示例:

%% 階梯圖
clear; clc; close all;
x = linspace(0, 4*pi, 40); 
y = sin(x);
stairs(y);  % 階梯圖

效果顯示:
樓梯圖
7、使用stem繪制桿狀圖,示例:

%% 桿狀圖
clear; clc; close all;
x = linspace(0, 4*pi, 40); 
y = sin(x);
stem(y);  % 桿狀圖

效果顯示:
桿狀圖
8、使用scatter函數繪制散點圖,示例:

%% 散點圖
clear; clc; close all;
figure;
x=[1 3 4 7 9 10 15];
y=[5 3 5 9 7 3 7];
subplot(1,2,1);
scatter(x,y);   % 顯示散點
subplot(1,2,2);
scatter(x,y,[],[1 0 0],'fill')   % 散點的顏色和填充,[]表示圓的大小相同

效果顯示:
散點圖
9、使用compass函數繪制羅盤圖,示例:

%%  繪制羅盤圖
clear ;clc; close all;
x=[1 -3 5 -6 8 9];
y=[5 7 -9 12 15 -9];
figure;
compass(x,y,'r');		% 繪制羅盤圖

效果示例:
羅盤圖
10、使用feather函數繪制羽毛圖,示例:

%% 羽毛圖
clear;clc; close all;
x=[1 3 5 6 8 9];
y=[5 7 -9 3 -5 2];
figure;
feather(x,y);  % 羽毛形狀的圖

效果顯示:
羽毛圖
11、使用comet函數繪制彗星圖,示例:

%% 繪制彗星圖,動態圖
clear ;clc; close all;
x = 0:pi/50:2*pi;
y = sin(x);
comet(x,y);  % 畫動態圖

效果顯示:
彗星動態圖
12、使用boxplot函數繪制盒圖,示例:

%%   正整數的頻率表
clear;clc; close all;
a=normrnd(1,4,50,1);
b=normrnd(5,1,50,1);
x=[a b];
subplot(1,2,1);
boxplot(x,'notch','on','symbol','b*','orientation','vertical');
subplot(1,2,2);
boxplot(x,'notch','off','symbol','r+','orientation','horizontal');

效果顯示:
盒狀圖
13、使用plotyy同時繪制兩條曲線,示例:

%% 使用plotyy畫兩條曲線,修改曲線的屬性
clear; clc; close all;
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2] = plotyy(x,y1,x,y2);  % 獲取axes句柄和兩條線段的句柄
set(get(AX(1),'Ylabel'),'String','Left Y-axis');  % 設置線段1的label
set(get(AX(2),'Ylabel'),'String','Right Y-axis');  % 設置線段2的label
title('Labeling plotyy');  % 顯示標題
set(H1,'LineStyle','--');  % 設置兩條線的風格 
set(H2,'LineStyle',':');

效果顯示:
雙y軸曲線圖
14、使用fill函數繪制填充特殊圖形,了解fill填充函數用法
。示例:

%% 畫特殊的圖形,並且填充顏色
clear; clc; close all;
t =(1:2:15)'*pi/8;   % 畫8邊形,將一個圓分為16份
x = sin(t); % x的表示和y的表示
y = cos(t);

subplot(1,2,1);
h = fill(x,y,'r'); % 填充畫出來的封閉圖形
set(h,'LineWidth',5);   % 設置線寬的大小
axis square off;  % 不顯示axes
text(0,0,'STOP','Color', 'w', 'FontSize', 40, ...
'FontWeight','bold', 'HorizontalAlignment', 'center');

t1 =(1:4)'*pi/2; 
x1 = sin(t1);
y1 = cos(t1);
subplot(1,2,2);
h = fill(x1,y1,'y');
set(h,'LineWidth',5);   % 獲取句柄h設置邊框線段的大小
axis square off;   
text(0,0,'WALT','Color', 'b', 'FontSize', 30, ...
'FontWeight','bold', 'HorizontalAlignment', 'center');

效果顯示:
圖標繪制
15、使用fplot繪制光滑的曲線,示例:

%%  使用fplot繪制光滑的曲線圖
clear; clc; close all;
x=-2:0.1:4;
subplot(1,2,1);
plot(x,humps(x));
title('plot');
subplot(1,2,2);
fplot(@humps,[-2 4])  % 光滑繪圖
title('fplot');

效果顯示:
光滑繪圖

想了解更多繪圖信息,請看下面博文:
三維:
MATLAB三維繪圖(五)高級三維繪圖
MATLAB三維繪圖(四)繪制特殊的三維圖
MATLAB三維繪圖(三)繪制等值線圖
MATLAB三維繪圖(二)使用隱函數作三維圖
MATLAB三維繪圖(一)三維基礎繪圖
MATLAB三維繪圖基礎meshgrid函數的用法解析

二維:
MATLAB二維繪圖(三)操作繪圖句柄顯示特定的效果
MATLAB二維繪圖(二)向圖中添加標題,坐標軸,圖標和文字信息
MATLAB二維繪圖(一)使用plot函數進行簡單繪圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM