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',':');
效果顯示:
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函數進行簡單繪圖