最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Matlab實現(xiàn)二維散點主方向直方圖的繪制詳解

 更新時間:2022年09月13日 10:36:41   作者:slandarer  
這篇文章主要為大家詳細介紹了如何利用Matlab實現(xiàn)二維散點主方向直方圖的繪制,文中的示例代碼講解詳細,對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下

簡簡單單畫個二維散點圖主方向上的直方圖:

工具函數(shù)

輸入nx2大小的數(shù)組,返回以下四個圖形對象:

  • H1: ‘數(shù)據(jù)點’
  • H2: ‘主方向’
  • H3: ‘數(shù)據(jù)范圍’
  • H4: ‘統(tǒng)計圖’
function [H1,H2,H3,H4]=PCA2Hist(X,varargin)
% H1: '數(shù)據(jù)點'
% H2: '主方向'
% H3: '數(shù)據(jù)范圍'
% H4: '統(tǒng)計圖'

% PCA-Hist
% rng(12)
hold on
H1=scatter(X(:,1),X(:,2),'x','LineWidth',2,varargin{:});


% 求主方向
Xmean=mean(X);
X0=X-Xmean;
covMat=(X0.')*X0./size(X,1);
[V,~]=eigs(covMat,1);
V=V.*sign(V(1));
Vc=[V(2);-V(1)];
Lp=max(X0*V);
Ln=min(X0*V);
Ll=max(X0*Vc);
Lr=min(X0*Vc);

% 繪制統(tǒng)計圖
H2=plot(Xmean(1)+[Lp,Ln].*V(1).*1.05,Xmean(2)+[Lp,Ln].*V(2).*1.05,'Color',[H1.CData./5,.8],'LineStyle','-.','LineWidth',1.5);
H3=fill(Xmean(1)+[Lp,Lp,Ln,Ln].*V(1).*1.05+[Ll,Lr,Lr,Ll].*Vc(1).*1.05,...
     Xmean(2)+[Lp,Lp,Ln,Ln].*V(2).*1.05+[Ll,Lr,Lr,Ll].*Vc(2).*1.05,... 
    H1.CData,'FaceAlpha',.15,'EdgeColor','none');

histHdl=histogram(X0*Vc,'BinEdges',linspace(Lr,Ll,13),'Visible','off');
maxValue=max(histHdl.Values);
for i=1:histHdl.NumBins
    H4(i)=fill(Xmean(1)+[histHdl.BinEdges(i).*Vc(1)+Lp.*V(1).*1.05,...
        histHdl.BinEdges(i).*Vc(1)+Lp.*V(1).*1.05+histHdl.Values(i).*Lp.*V(1).*0.5./maxValue,...
        histHdl.BinEdges(i+1).*Vc(1)+Lp.*V(1).*1.05+histHdl.Values(i).*Lp.*V(1).*0.5./maxValue,...
        histHdl.BinEdges(i+1).*Vc(1)+Lp.*V(1).*1.05],...
        Xmean(2)+[histHdl.BinEdges(i).*Vc(2)+Lp.*V(2).*1.05,...
        histHdl.BinEdges(i).*Vc(2)+Lp.*V(2).*1.05+histHdl.Values(i).*Lp.*V(2).*0.5./maxValue,...
        histHdl.BinEdges(i+1).*Vc(2)+Lp.*V(2).*1.05+histHdl.Values(i).*Lp.*V(2).*0.5./maxValue,...
        histHdl.BinEdges(i+1).*Vc(2)+Lp.*V(2).*1.05],...
        H1.CData,'FaceAlpha',.5);

end
end

基本使用

% 隨機生成數(shù)據(jù)
X=mvnrnd([0,0],[3,1.5;1.5,2],500);

% 繪圖
[H1,H2,H3,H4]=PCA2Hist(X);

% 創(chuàng)建圖例
lgd=legend([H1,H2,H3,H4(1)],'數(shù)據(jù)點','主方向','數(shù)據(jù)范圍','統(tǒng)計圖');
lgd.Location='best';

% 坐標(biāo)區(qū)域修飾
ax=gca;hold on;
ax.DataAspectRatio=[1,1,1];
ax.XGrid='on';
ax.YGrid='on';
ax.XColor=[.2,.2,.2];
ax.YColor=[.2,.2,.2];
ax.GridLineStyle='-.';
ax.GridAlpha=.1;
ax.LineWidth=1.1;
ax.FontSize=11;

多組數(shù)據(jù)

% 隨機生成數(shù)據(jù)
X1=mvnrnd([0,0],[3,1.5;1.5,2],500);
X2=mvnrnd([0,0],[3,.1;.1,2],500)-[0,5];

% 繪圖
[H1_1,H1_2,H1_3,H1_4]=PCA2Hist(X1);
[H2_1,H2_2,H2_3,H2_4]=PCA2Hist(X2);

% 創(chuàng)建圖例
lgd=legend([H1_1,H1_2,H1_3,H1_4(1),H2_1,H2_2,H2_3,H2_4(1)],...
    '數(shù)據(jù)點','主方向','數(shù)據(jù)范圍','統(tǒng)計圖','數(shù)據(jù)點','主方向','數(shù)據(jù)范圍','統(tǒng)計圖');
lgd.Location='best';

% 坐標(biāo)區(qū)域修飾
ax=gca;hold on;
ax.DataAspectRatio=[1,1,1];
ax.XGrid='on';
ax.YGrid='on';
ax.XColor=[.2,.2,.2];
ax.YColor=[.2,.2,.2];
ax.GridLineStyle='-.';
ax.GridAlpha=.1;
ax.LineWidth=1.1;
ax.FontSize=11;

修改配色

設(shè)置CData屬性即可:

% 隨機生成數(shù)據(jù)
X1=mvnrnd([0,0],[3,1.5;1.5,2],500);
X2=mvnrnd([0,0],[3,.1;.1,2],500)-[0,5];

% 繪圖
[H1_1,H1_2,H1_3,H1_4]=PCA2Hist(X1,'CData',[122,138,114]./255);
[H2_1,H2_2,H2_3,H2_4]=PCA2Hist(X2,'CData',[137,150,165]./255);

% 創(chuàng)建圖例
lgd=legend([H1_1,H1_2,H1_3,H1_4(1),H2_1,H2_2,H2_3,H2_4(1)],...
    '數(shù)據(jù)點','主方向','數(shù)據(jù)范圍','統(tǒng)計圖','數(shù)據(jù)點','主方向','數(shù)據(jù)范圍','統(tǒng)計圖');
lgd.Location='best';

% 坐標(biāo)區(qū)域修飾 
ax=gca;hold on;
ax.DataAspectRatio=[1,1,1];
ax.XGrid='on';
ax.YGrid='on';
ax.XColor=[.2,.2,.2];
ax.YColor=[.2,.2,.2];
ax.GridLineStyle='-.';
ax.GridAlpha=.1;
ax.LineWidth=1.1;
ax.FontSize=11;

精細修飾

對返回的四個對象進行屬性設(shè)置即可,比如把方向線改為紅色,將散點改為圓點:

% 隨機生成數(shù)據(jù)
X=mvnrnd([0,0],[3,1.5;1.5,2],500);

% 繪圖
[H1,H2,H3,H4]=PCA2Hist(X);

% 圖形對象修飾
H1.Marker='o';
H1.MarkerFaceColor=H1.CData;
H1.MarkerEdgeColor=[1,1,1];
H1.SizeData=80;
H1.LineWidth=.8;

H2.Color=[.8,0,0];

% 創(chuàng)建圖例
lgd=legend([H1,H2,H3,H4(1)],'數(shù)據(jù)點','主方向','數(shù)據(jù)范圍','統(tǒng)計圖');
lgd.Location='best';

% 坐標(biāo)區(qū)域修飾
ax=gca;hold on;
ax.DataAspectRatio=[1,1,1];
ax.XGrid='on';
ax.YGrid='on';
ax.XColor=[.2,.2,.2];
ax.YColor=[.2,.2,.2];
ax.GridLineStyle='-.';
ax.GridAlpha=.1;
ax.LineWidth=1.1;
ax.FontSize=11;

到此這篇關(guān)于Matlab實現(xiàn)二維散點主方向直方圖的繪制詳解的文章就介紹到這了,更多相關(guān)Matlab直方圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++實現(xiàn)目錄監(jiān)視器的方法詳解

    C/C++實現(xiàn)目錄監(jiān)視器的方法詳解

    這篇文章主要介紹了C/C++ 實現(xiàn)目錄監(jiān)視器的方法,然后網(wǎng)上查到的基本就有三種方法,使用FindFirstChangeNotification等系列函數(shù),使用ReadDirectoryChangesW函數(shù)和使用change journals,本文使用了第二種方式來實現(xiàn)一個目錄監(jiān)視,需要的朋友可以參考下
    2024-04-04
  • C++11學(xué)習(xí)之多線程的支持詳解

    C++11學(xué)習(xí)之多線程的支持詳解

    這篇文章主要為大家詳細介紹了C++11中多線程支持的相關(guān)資料,文中的示例代碼講解詳細,對我們深入了解C++11有一定的幫助,需要的可以參考一下
    2023-02-02
  • GetChar緩存機制深入剖析

    GetChar緩存機制深入剖析

    以下是對GetChar緩存機制進行了詳細的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++單例模式的實例詳解

    C++單例模式的實例詳解

    這篇文章主要介紹了C++單例模式的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • C++模擬實現(xiàn)string的示例代碼

    C++模擬實現(xiàn)string的示例代碼

    這篇文章主要為大家詳細介紹了C++模擬實現(xiàn)string的相關(guān)資料,文中的示例代碼講解詳細,對我們學(xué)習(xí)C++有一定的幫助,需要的可以參考一下
    2022-11-11
  • 如何使用VC庫函數(shù)中的快速排序函數(shù)

    如何使用VC庫函數(shù)中的快速排序函數(shù)

    下面呢,小編就為大家介紹一下VC中庫函數(shù)qsort()的用法。需要的朋友可以過來參考下
    2013-09-09
  • C語言實現(xiàn)圖的搜索算法示例

    C語言實現(xiàn)圖的搜索算法示例

    這篇文章主要介紹了C語言實現(xiàn)圖的搜索算法,結(jié)合具體實例形式分析了C語言實現(xiàn)圖的定義及搜索相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • C語言簡易實現(xiàn)掃雷小游戲

    C語言簡易實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細介紹了C語言簡易實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 學(xué)習(xí)二維動態(tài)數(shù)組指針做矩陣運算的方法

    學(xué)習(xí)二維動態(tài)數(shù)組指針做矩陣運算的方法

    這片文章介紹了如何利用二維動態(tài)數(shù)組指針做矩陣運算,需要的朋友可以參考下
    2015-07-07
  • QT實現(xiàn)TCP客戶端自動連接

    QT實現(xiàn)TCP客戶端自動連接

    這篇文章主要為大家詳細介紹了QT中一個TCP客戶端自動連接的測試模型,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12

最新評論

凤庆县| 休宁县| 四川省| 谷城县| 图们市| 磐石市| 平阴县| 忻州市| 宜兴市| 晋州市| 布尔津县| 尚志市| 新疆| 株洲县| 莒南县| 云浮市| 宁陵县| 休宁县| 石河子市| 新化县| 华蓥市| 齐齐哈尔市| 绿春县| 武乡县| 公主岭市| 铜山县| 祁连县| 孟州市| 武宣县| 天峨县| 延川县| 台中县| 新乡县| 五峰| 昂仁县| 平定县| 桓仁| 大悟县| 治多县| 丘北县| 仪征市|