Matlab繪圖高階部分
圖形是呈現資料的一種直觀方式,在用Matlab進行資料處理和計算後,我們一般都會以圖形的形式將結果呈現出來。尤其在論文的撰寫中,優雅的圖形無疑會為文章加分。本篇文章非完全原創,我的工作就是把見到的Matlab繪圖程式碼收集起來重新跑一遍,修改區域性錯誤,然後將所有的圖貼上來供大家參考。大家可以先看圖,有看中的可以直接把程式碼Copy過去改成自己想要的。
<BR>%% 直方圖圖的繪製
%直方圖有兩種圖型:垂直直方圖和水平直方圖。而每種圖型又有兩種表現模式:累計式:分組式。
figure;
z=[ 3 , 5 , 2 , 4 , 1 ; 3 , 4 , 5 , 2 , 1 ; 5 , 4 , 3 , 2 , 5 ];
% 各因素的相對貢獻份額 colormap(cool);% 控制圖的用色
subplot( 2 , 3 , 1 );
bar(z);%二維分組式直方圖,預設的為 'group'
title( '2D default' );
subplot( 2 , 3 , 2 );
bar3(z);%三維的分組式直方圖
title( '3D default' );
subplot( 2 , 3 , 3 );
barh(z, 1 );%分組式水平直方圖,寬度設定為 1
title( 'vert width=1' );
subplot( 2 , 3 , 4 );
bar(z, 'stack' );%累計式直方圖,例如: 1 , 1 + 2 , 1 + 2 + 3 構成了第一個bar
title( 'stack' )
subplot( 2 , 3 , 5 );
bar3h(z, 0.5 , 'stacked' );%三維累計式水平直方圖
title( 'vert width=1 stack' );
subplot( 2 , 3 , 6 );
bar3(z, 0.8 , 'grouped' );%對相關資料的顏色進行分組,預設的位 'group'
title( 'width=0.8 grouped' );
|
%% =========柱狀圖的進階==========
figure;
y=[ 300 311 ; 390 425 ; 312 321 ; 250 185 ; 550 535 ; 420 432 ; 410 520 ;];
subplot( 1 , 3 , 1 );
b=bar(y);
grid on;
set(gca, 'XTickLabel' ,{ '0' , '1' , '2' , '3' , '4' , '5' , '6' })
legend( '演算法1' , '演算法2' );
xlabel( 'x axis' );
ylabel( 'y axis' );
%使僅有的一組柱狀圖呈現不同顏色,預設的位相同顏色
data = [ 1.0 , 1.0 , 0.565 , 0.508 , 0.481 , 0.745 ];
subplot( 1 , 3 , 2 );
b = bar(data);
ch = get(b, 'children' );
set(ch, 'FaceVertexCData' ,[ 4 ; 2 ; 3 ; 1 ; 5 ; 6 ]);%使用Indexed形式指定每組bar的顏色
set(gca, 'XTickLabel' ,{ 'C0' , 'C1' , 'C2' , 'C3' , 'C4' , 'C5' })
axis([ 0 7 0.0
1.0 ]);
ylabel( 'micro F-measure' );
%使每個bar顏色不同,預設的是每個元素在不同組的顏色相同
data = [ 3 , 7 , 5 , 2 ; 4 , 3 , 2 , 9 ; 6 , 6 , 1 , 4 ];
subplot( 1 , 3 , 3 );
b = bar(data);
ch = get(b, 'children' );
set(ch{ 1 }, 'FaceVertexCData' ,[ 1 ; 2 ; 3 ]);%設定第一個元素在不同組的顏色
set(ch{ 2 }, 'FaceVertexCData' ,[ 1 ; 2 ; 3 ]);%設定第二個元素在不同組的顏色
set(ch{ 3 }, 'FaceVertexCData' ,[ 1 ; 2 ; 3 ]);
set(ch{ 4 }, 'FaceVertexCData' ,[ 1 ; 2 ; 3 ]);
|
%% 彩色柱狀圖
%用到的資料
n = 8 ;
Z = rand(n, 1 );
figure;
%預設圖片
subplot( 1 , 3 , 1 );
bar(Z);
%簡單的作圖
% 這個圖根據資料列中值的大小著色。每列中的值越大,顏色越突出
subplot( 1 , 3 , 2 );
h=bar(Z);
colormap(summer(n));
ch = get(h, 'Children' );
fvd = get(ch, 'Faces' );%針對矩陣時,只能用fvd=get(ch{col}, 'Faces' ),下同
fvcd = get(ch, 'FaceVertexCData' );
[~, izs] = sortrows(Z, 1 );
for
i = 1 :n
row = izs(i);
fvcd(fvd(row,:)) = i;
end
set(ch, 'FaceVertexCData' ,fvcd)
%圖片會以漸變的方式著色,效果非常不錯
subplot( 1 , 3 , 3 );
h=bar(Z);
ch = get(h, 'Children' );
fvd = get(ch, 'Faces' );
fvcd = get(ch, 'FaceVertexCData' );
[zs, izs] = sortrows(Z, 1 );
k = 128 ; % 準備生成 128 * 3 行的colormap
colormap(summer(k)); % 這樣會產生一個 128 * 3 的矩陣,分別代表[R G B]的值
% 檢視資料
whos ch fvd fvcd zs izs
% Name Size Bytes Class Attributes
%
% ch 1x1 8 double
% fvcd 66x1 528 double
% fvd 13x4 416 double
% izs 13x1 104 double
% zs 13x1 104 double
%
shading interp % Needed to graduate colors
for
i = 1 :n
color = floor(k*i/n); % 這裡用取整函式獲得color在colormap中行
row = izs(i); % Look up actual row # in data
fvcd(fvd(row, 1 )) = 1 ; % Color
base vertices 1st index
fvcd(fvd(row, 4 )) = 1 ;
fvcd(fvd(row, 2 )) = color; % Assign top vertices color
fvcd(fvd(row, 3 )) = color;
end
set(ch, 'FaceVertexCData' , fvcd); % Apply the vertex coloring
set(ch, 'EdgeColor' , 'k' );
|
%% 繪製統計直方圖
%hist(y):如果y是向量,則把其中元素放入 10 個條目中,且返回每條中的元素的個數;如果y為矩陣,則分別對每列進行處理,顯示多組條形。
%[n,xout]=hist(y,x):非遞減向量x的指定bin的中心。向量xout包含頻率計數與條目的位置。
x=- 10 :. 1 : 10 ;
y1=randn( 2008 , 1 );
y2=randn( 2008 , 3 );
figure;
colormap(winter);
subplot( 2 , 2 , 1 );
hist(y1);%把其中元素放入 10 個條目中
title( 'y1為向量,default,n=10' );
subplot( 2 , 2 , 2 );
hist(y2);%分別對每列進行處理,顯示多組條形
title( 'y2為矩陣' );
subplot( 2 , 2 , 3 );
hist(y1,x);%使用者也可以使用[n,xout]=hist(y1,x);bar(xout,n)繪製條形直方圖
title( '向量x指定條目' );
subplot( 2 , 2 , 4 );
hist(y2, 1000 );%第二個引數為標量時指定bin的數目
title( 'nbins=1000' );
|
%% ========均值方差直方圖========
a=[ 8 9 10
7 8
9 ];%mean
b=[ 1 1 1
1 1
1 ];%std
figure();
h=bar(a);
ch=get(h, 'children' );
set(ch, 'FaceVertexCData' ,[ 4 ; 2 ; 3 ; 1 ; 5 ; 6 ]);%使用Indexed形式指定每組bar的顏色
hold on;
errorbar(a,b, 'k' , 'LineStyle' , 'none' );
|
%% =======散點圖scatter , scatter3 , plotmatrix======
%scatter3(X,Y,Z,S,C):在由向量X、Y和Z指定的位置顯示大小和顏色分別由S和C決定的離散點
figure;
[x,y,z] = sphere( 16 );
X = [x(:)*. 5 x(:)*. 75 x(:)];
Y = [y(:)*. 5 y(:)*. 75 y(:)];
Z = [z(:)*. 5 z(:)*. 75 z(:)];
S = repmat([ 10 2 5 ]* 10 ,numel(x), 1 );
C = repmat([ 1 2 3 ],numel(x), 1 );
subplot( 1 , 2 , 1 );
scatter(X(:),Y(:),S(:),C(:));
title( 'scatter' );
subplot( 1 , 2 , 2 );
scatter3(X(:),Y(:),Z(:),S(:),C(:), 'filled' ), view(- 60 , 60 );
title( 'scatter3' );
%plotmatrix(X,Y)繪出X(p*M)與Y(p*N)的列組成的散度圖(N,M)
figure;
X=randn( 100 , 2 );Y=randn( 100 , 2 );
subplot( 1 , 3 , 1 ),plotmatrix(X);%等價於plotmatrix(X,X),除了對角上的圖為X每一列的直方圖hist(X(:,col))
title( 'plotmatrix(X)' );
subplot( 1 , 3 , 2 ),plotmatrix(X,X);
title( 'plotmatrix(X,X)' );
subplot( 1 , 3 , 3 ),plotmatrix(X,Y);
title( 'plotmatrix(X,Y)' );
|
%% =========繪製區域圖===========
%區域圖特點是:在圖上繪製多條曲線時,每條曲線(除第一條外)都是把“前”條曲線作基線,再取值繪製而成。因此,該指令所畫的圖形,能醒目地反映各因素對最終結果的貢獻份額。
figure;
x= 1 : 2 : 9 ;%
注意:自變數要單調變化
y=magic( 5 );% 各因素的相對貢獻份額,每一列相當於一個因素
colormap(spring);% 控制圖的用色
area(x,y, 4 );%area(y)則以列下標作為自變數,第三個引數為基準線(預設為 0 )
set(gca, 'layer' , 'top' );%圖層設定為top層,顯示網格
title( 'basevalue=4' );
legend( ' 因素 A' , ' 因素 B' , ' 因素 C' , '因素D' , '因素E' );
grid on;
|
%% =========繪製餅狀圖=========
%餅圖指令pie和pie3用來表示各元素佔總和的百分數。該指令第二個引數為與第一引數等長的 0 - 1
%向量, 1 使對應扇塊突出。第三個引數指定個扇區的label
figure;
colormap(summer);% 控制圖的用色
x=[ 16 17 21
25 21 ];
subplot( 1 , 2 , 1 );
pie(x,[ 0 0 0
0 1 ],{ '0-10歲兒童' , '10-20歲兒童' , '20-35歲青年' , '35-55歲中年' , '55歲以上老年' });
subplot( 1 , 2 , 2 );
pie3(x,[ 0 0 0
0 1 ],{ '0-10歲兒童' , '10-20歲兒童' , '20-35歲青年' , '35-55歲中年' , '55歲以上老年' });
|
%% 繪製填色多邊形。若每列的首尾元素不重合,則將預設把最後一點與第一點相連,強行使多邊形封閉。
%fill和fill3用於繪製填色多邊形
%fill(X1,Y1,C1,X2,Y2,C2,...)
%fill3(X1,Y1,Z1,C1,X2,Y2,Z2,C2,...)
%引數 1 和 2 為等長向量時,多邊形的節點數由項鍊長度決定;而當其為矩陣時,每一列對應一個多邊形
%引數 3 為顏色(用顏色字元r/g/b/c或[r g b]表示)
figure;
colormap(autumn);% 控制圖的用色
n= 10 ; % 多邊形的邊數
dt= 2 *pi/n;t= 0 :dt: 2 *pi;
t=[t,t( 1 )]; %fill 指令要求資料向量的首位重合,使圖形封閉。
x=sin(t);y=cos(t);
subplot( 1 , 2 , 1 );
fill(x,y,[ 1 1 0 ]);axis off % 畫填色多邊形,隱去座標軸。
X=[ 0.5 0.5 0.5
0.5 ; 0.5 0.5
0.5 0.5 ; 0 1 1
0 ];
Y=[ 0.5 0.5 0.5
0.5 ; 0.5 0.5
0.5 0.5 ; 0 0 1
1 ];
Z=[ 1 1 1
1 ; 0 0
0 0 ; 0 0 0
0 ];
C=[ 1 0 0
1 ; 0 1
0 1 ; 0 0 1
0 ];
subplot( 1 , 2 , 2 );
fill3(X,Y,Z,C);
view([- 10 55 ]);
xlabel( 'x' ),ylabel( 'y' );box on;grid on;
|
%% =======繪製離散資料桿狀圖===========
%stem和stem3函式用於繪製二維或三維的離散資料桿狀圖
%stem(Y)可以理解成繪製離散點的plot(y)函式
%stem(X,Y)可以理解成繪製離散點的plot(x,y)函式
%stem(..., 'filled' )改變資料點顯示的空、實狀態。
%stem(..., 'LINESPEC' )Linespec代表直線屬性設定參量。
x= 1 :. 1 : 10 ;
y=exp(x.*sin(x));
figure;
subplot( 1 , 3 , 1 );
plot(x,y, '.-r' );
title( 'plot(x,y)' );
subplot( 1 , 3 , 2 );
stem(x,y, 'b' );
subplot( 1 , 3 , 3 );
stem(x,y, ':g' , 'fill' );
%繪製三維離散桿狀圖
th=( 0 : 127 )/ 128 * 2 *pi;%
角度取樣點
x=cos(th);
y=sin(th);
f=abs(fft(ones( 10 , 1 ), 128 ));
%對離散方波進行 FFT 變換,並取幅值
stem3(x,y,f ',' cd ',' fill');%繪製圖形
view([- 65 30 ]);
xlabel( 'Real' ); %圖形標註
ylabel( 'Imaginary' );
zlabel( 'Amplitude' );
title( 'FFT example' );
|
%% =======繪製方向和速度向量圖=======
%compass-繪製羅盤圖
%feather-繪製羽毛圖
%quiver-繪製二維箭頭圖
%quiver3-繪製三維箭頭圖
%繪製羅盤圖
figure;
wdir=[ 45 90 90
45 360
335 360 270
335 270 335 335 ];
knots=[ 6 6 8
6 3
9 6 8
9 10 14
12 ];
rdir=wdir*pi/ 180 ;
[x,y]=pol2cart(rdir,knots);% 極座標轉化為直角座標
compass(x,y);
title( '風向和風力' )
%繪製羽毛圖
figure;
alpha= 90 :- 10 : 0 ;
r=ones(size(alpha));
m=alpha*pi/ 180 ;
n=r* 10 ;
[u,v]=pol2cart(m,n);% 極座標轉化為直角座標
feather(u,v);
title( '羽毛圖' )
%羅盤圖和羽毛圖的比較
figure;
t=-pi/ 2 :pi/ 12 :pi/ 2 ;
% 在 區間,每 取一點。
r=ones(size(t)); % 單位半徑
[x,y]=pol2cart(t,r); % 極座標轉化為直角座標
subplot( 1 , 2 , 1 ),compass(x,y),title( 'Compass' )
subplot( 1 , 2 , 2 ),feather(x,y),title( 'Feather' )
%繪製箭頭圖
figure;
[x,y] = meshgrid(- 2 :. 2 : 2 ,- 1 :. 15 : 1 );
z = x .* exp(-x.^ 2 - y.^ 2 );
[px,py] = gradient(z,. 2 ,. 15 );
subplot( 1 , 2 , 1 );
contour(x,y,z), hold on
quiver(x,y,px,py), hold off, axis image
title( 'quiver示例' );
[x,y,z]=peaks( 15 );
[nx,ny,nz]=surfnorm(x,y,z);%surfnorm求平面的法向量
subplot( 1 , 2 , 2 )
surf(x,y,z);
hold on;
quiver3(x,y,z,nx,ny,nz);
title( 'quiver3示例' );
|
圖形是呈現資料的一種直觀方式,在用Matlab進行資料處理和計算後,我們一般都會以圖形的形式將結果呈現出來。尤其在論文的撰寫中,優雅的圖形無疑會為文章加分。本篇文章非完全原創,我的工作就是把見到的Matlab繪圖程式碼收集起來重新跑一遍,修改區域性錯誤,然後將所有的圖貼上來供大家參考。大家可以先看圖,有看中 基本 barh 分享 com 自定義 subplot mes 1.2 img 目錄
1..二維圖 1.1 基本畫圖功能 1.2 plot參數說明 :線條類型,點類型,顏色 1.3 坐標軸定標和圖形說明 1.4 子圖 :subplot 1.5 其他類型的二維圖 prop ont ott char 9.1 pbm tex cti roman
一、用法解析... 1
1.1. 分辨率-rnumber. 1
1.2. 輸出圖片的“格式”formats. 1
二、用法示例... 1
2.1. 設置輸出 sim 數據 jpg grid tro 另存為 部分 PE 標註 Matlab繪圖---坐標系顯示設置
【@wp20180507-20180511(week 5)】
目錄:
一、設置坐標範圍
二、修改坐標軸顯示的刻度、密度、lable文字、位置等
三、Matlab繪制出來的
1.錯誤描述:
figure圖例中漢字無法識別,在相應位置顯示正方形
2.錯誤如下圖:
3.錯誤原因:
set(gca,'XTickLabel',{'直接設計','優化設計'},'FontSize',15,'FontName','Times New Roman');
x=[0 1 1 0 0]; y=[0 0 1 1 0]; t=[1 1 1 1 1]; plot(x,y) h=patch(x,y,'b'); h.FaceAlpha=0.5; hold on % axis([-4 4 -4 4]) % axis equal % M=[1 0 2; %  
java工程師,你需要知道的還有很多!如今的Web工程師,不僅要懂java基礎,框架,servlet,前端,還要會各種框架整合,什麼ssh,ssm.....諸如此類吧。不可否認,這些是根基,但要作為一個高階工程師,面試必然會問到的還包括如下一些,大家好好準備下。
先來個框架的
Matlab繪圖基礎——用print函式批量儲存圖片到檔案(Print figure or save to file)
一、用法解析
1.1. 解析度-rnumber
1.2. 輸出圖片的“格式”formats
二、用法示例
2.1. 設
h1=plot(x1,y1); h2=plot(x2,y2);h3=plot(x3,y3); h4=plot(x4,y4); legend([h1 h3],'x1-y1','x3-y3'); 四線,圖例僅顯示1,3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
一、PHP核心技術
1.寫出一個能建立多級目錄的PHP函式(新浪網技術部)
<?php
/**
* 建立多級目錄
* @param $path string 要建立的目錄
* @param $mode int 建立目錄的模式
matlab繪圖設定橫座標數值的角度
matlab自帶的包中無法改變橫座標的角度,但往往橫座標的數值過長,容易造成重合,因此需要將橫座標的數值角度進行旋轉:
橫座標旋轉角度函式
呼叫方法
結果展示
橫座標旋轉角度函式
function th=rotatet
Matlab繪圖
強大的繪圖功能是Matlab的特點之一,Matlab提供了一系列的繪圖函式,使用者不需要過多的考慮繪圖的細節,只需要給出一些基本引數就能得到所需圖形,這類函式稱為高層繪圖函式。此外,Matlab還提供了直接對圖形控制代碼進行操作的低層繪圖操作。這類操作將圖
概念
void指標 資料指標
void指標
void指標的基本概念
void的意思就是“無型別”,void指標則為“無型別指標”,void指標可以指向任何型別的資料。 所以void指標一般被稱為通用指標或者泛
高階部分(Bus、Class、Device、Driver)
深入,並且廣泛
-沉默犀牛
這篇文章只分析Bus、Class的作用,和表示它們的結構體。不分析介面函式
Bus
Bus是處理器與一個或者多個device之間的通道。在裝置模型中,所有的devi
1、plot
1)、plot(x) —— 預設自變數繪圖格式,x為向量, 以x元素值為縱座標,以相應元素下標為橫座標繪圖
2)、plot(x,y) —— 基本格式,以y(x)的函式關係作出直角座標圖,如果y為n×m的矩陣,則以x 為自變數,作出m條曲線
3)、plot(
在訊號檢測理論中,接收者操作特徵曲線(receiver operating characteristic curve,或者叫ROC曲線)是一種座標圖式的分析工具,用於 (1) 選擇最佳的訊號偵測模型、捨棄次佳的模型。 (2) 在同一模型中設定最佳閾值。
在做決策時,ROC分
一、gourp by 和case when 的混用
1、且看一張表格,表格的結構是(其中一條資料)
{
"_id" : ObjectId("57876215b522253ff42e3346"),
"type" : NumberInt(0),
"us
2011年10月14日 16:04:55
wguoyong
閱讀數:27064
標籤:
matlab plot
在後端開發中,為了提高效能,對於一些經常查詢但是又不太變化的內容會使用redis,比如前端的列表展示項等,如果資料有變化也可以清空快取,讓前端查一次資料庫,所以使用redis相對高效和靈活.本文主要對於redis在linux上的使用和安裝進行說明。
1.r
寫了一份專利,裡面用到了一些matlab plot出來的圖。專利部的同事讓我轉成autocad的dwg格式。原以為用原始資料在autocad裡畫幾條曲線就ok了。後來想想,沒有那麼簡單。因為圖裡還有網格,橫座標、縱座標以及數值標籤,還有圖例。這樣的工作太浩大了。而且我對au 相關推薦
Matlab繪圖高階部分
[數學建模(八)]使用MATLAB繪圖1
Matlab繪圖基礎——用print函數保存圖片(Print figure or save to file)
Matlab繪圖---坐標系顯示設置
針對MATLAB 繪圖時figure圖例中漢字無法識別問題
MATLAB--繪圖4
javaEE工程師面試題(高階部分)
Matlab繪圖基礎——用print函式批量儲存圖片到檔案(Print figure or save to file)
matlab畫圖顯示部分曲線顯示legend
php面試題之一——PHP核心技術(高階部分)
matlab 繪圖-橫座標角度旋轉
Matlab繪圖-很詳細,很全面
C語言指標高階部分:void指標和資料指標
(二)裝置結構模型_高階部分(Bus、Class、Device、Driver)
Matlab繪圖(二維)
ROC曲線詳解及matlab繪圖例項
mongodb 高階部分 group by case when select distinct substr(sdf,0,6)
MATLAB 繪圖基礎
redis的使用和安裝,redis基礎和高階部分
matlab繪圖轉autocad的dwg