使用Matlab繪製高效的散點圖連線圖

一、常規的散點圖繪製

散點圖是數據可視化中比較常見的形式,常用來表示兩個變數之間的關係。

在Matlab中,我們可以通過scatter函數來繪製散點圖。下面是一個簡單的散點圖示例:

 x = rand(1,100); 
 y = rand(1,100); 
 scatter(x,y) 

該示例中使用rand函數生成了兩個長度為100的隨機序列,然後調用scatter函數將這兩列序列轉換為散點圖。

下面我們來解釋一下scatter函數的構造:

 scatter(x,y) %簡單散點圖繪製 
 scatter(x,y,s) %改變散點大小 
 scatter(x,y,s,c) %改變散點顏色 
 scatter(x,y,s,c,'filled') %帶填充的散點圖 
 scatter(___,'filled') %用默認值填充散點圖 

散點圖的繪製是一個比較基礎的知識點,在此不做過多的闡述。針對不同場景的散點圖繪製方式各異,我們可以進一步了解Matlab中各種特殊情況下的散點圖繪製方式。

二、定製線條的散點圖繪製

定製散點圖是一種常見且有用的數據展示方式,可以進一步突出各數據點的差異性。

在Matlab中,我們可以使用plot函數來繪製定製化的散點圖。

下面是一個通過plot函數繪製的定製化散點圖:

 x = randn(1,20); 
 y = randn(1,20); 
 sizes = rand(1,20)*200+50; %隨機生成點的大小 
 colors = rand(20,3); %隨機生成點的顏色 
 plot(x,y,'ko','MarkerFaceColor','g','MarkerSize',sizes) 
 axis([-3 3 -3 3]) 
 grid on 

在上述示例中,我們生成了兩列隨機數,並通過rand函數生成了大小為20的序列。

繪製定製散點圖時,我們可以調整點的大小、顏色等,這一點在代碼示例中得到體現。

三、基於線連接的散點圖

基於線連接的散點圖相比於常規散點圖,能夠表達更多的數據信息和關聯性。

在Matlab中,我們可以使用plot函數來實現這一點。

下面是一個通過plot函數生成的基於線連接的散點圖:

 x = rand(1,10); 
 y = rand(1,10); 
 plot(x,y,'o-') 
 axis([-0.2 1.2 -0.2 1.2]) 
 grid on 

代碼示例中,我們生成了兩列長度為10的隨機數,然後使用plot函數生成基於線連接的散點圖。

通過這種方式,我們可以實現更加清晰的關聯性展示。

四、高效的散點圖與連線圖繪製

由於Matlab對於連線圖的支持度較弱,因此在許多場景下我們需要繪製自定義的連線圖。

下面我們來逐步講解如何繪製高效的散點圖與連線圖。

1. 繪製散點圖

在Matlab中,我們可以使用scatter函數方便地繪製散點圖。

下面是一個常規的scatter函數繪製的散點圖。

 rng('default') %返回默認種子 
 X = randn(50,2); 
 scatter(X(:,1),X(:,2),30) 
 axis([-3 3 -3 3]) 
 grid on 

在這個示例中,我們首先使用randn函數生成一個50*2的隨機矩陣,然後通過scatter函數將這個矩陣轉換為散點圖。

在實際應用中,我們還可以調整scatter函數的參數,如點大小、顏色、形狀等,從而更加準確地呈現數據信息。

2. 繪製連線圖

在Matlab中,我們可以使用plot函數來繪製基本的連線圖。但當需要繪製大量連線時,使用plot函數繪製連線圖會非常耗時。

因此,我們需要使用更高效的方式繪製連線圖,這種方法被稱為「線圈法」(loop method)。

下面是一個基於線圈法繪製的連線圖:

 rng('default') %返回默認種子 
 X = randn(50,2); 
 idx = randperm(50); 
 lIdx = [idx idx(1)]; %產生連接到其本身的圖形 
 b = sqrt(sum(diff(X(lIdx,:),1).^2,2)); 
 [dummy,maxIdx] = max(b); 
 plot(X(lIdx(maxIdx,:),1),X(lIdx(maxIdx,:),2),'ko-') 
 axis([-3 3 -3 3]) 
 grid on 

代碼示例中,我們首先生成一個50*2的隨機矩陣。

使用randperm函數將50個數字進行隨機排列,隨後在最後添加一個連接到自身的數字,最後形成一共51個數字。

計算最遠的兩個點的距離,並繪製出來。

3. 繪製散點圖和連線圖

當需要同時繪製散點圖和連線圖時,我們可以基於上述方法實現。

下面是一個綜合示例:

 rng('default') %返回默認種子 
 X = randn(50,2); 
 idx = randperm(50); 
 %散點圖 
 hScat = scatter(X(:,1),X(:,2),50,'b','filled'); 
 hold on 
 %連線圖 
 lIdx = [idx idx(1)]; %產生連接到其本身的圖形 
 b = sqrt(sum(diff(X(lIdx,:),1).^2,2)); 
 [dummy,maxIdx] = max(b); 
 hLine = plot(X(lIdx(maxIdx,:),1),X(lIdx(maxIdx,:),2),'r','LineWidth',2); 
 axis([-3 3 -3 3]) 
 grid on 

實現方式與繪製連線圖基本相同,只是在散點圖繪製部分,我們需要使用scatter函數來繪製散點圖。

通過將兩個圖層疊在一起,我們可以同時展示散點圖和連線圖,並使圖形呈現更直觀、更明了的效果。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241385.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:32
下一篇 2024-12-12 12:32

相關推薦

  • 用Python繪製箱線圖

    箱線圖,也被稱為盒須圖或者盒式圖,是一種可以生動展示數據的統計圖表。這種圖表能夠展示出數據分布的五個特徵值:最小值、第一四分位數、中位數、第三四分位數和最大值。箱線圖能夠幫助我們直…

    編程 2025-04-29
  • 用Matlab繪製正多邊形

    在這篇文章中,我們將探討如何使用Matlab繪製正多邊形。我們將從以下幾個方面進行闡述: 一、繪製正三角形 正三角形是最簡單的正多邊形之一。要繪製一個正三角形,我們可以使用Matl…

    編程 2025-04-29
  • Matlab中addpath的使用方法

    addpath函數是Matlab中的一個非常常用的函數,它可以在Matlab環境中增加一個或者多個文件夾的路徑,使得Matlab可以在需要時自動搜索到這些文件夾中的函數。因此,學會…

    編程 2025-04-29
  • Matlab二值圖像全面解析

    本文將全面介紹Matlab二值圖像的相關知識,包括二值圖像的基本原理、如何對二值圖像進行處理、如何從二值圖像中提取信息等等。通過本文的學習,你將能夠掌握Matlab二值圖像的基本操…

    編程 2025-04-28
  • Trocket:打造高效可靠的遠程控制工具

    如何使用trocket打造高效可靠的遠程控制工具?本文將從以下幾個方面進行詳細的闡述。 一、安裝和使用trocket trocket是一個基於Python實現的遠程控制工具,使用時…

    編程 2025-04-28
  • Python生成列表最高效的方法

    本文主要介紹在Python中生成列表最高效的方法,涉及到列表生成式、range函數、map函數以及ITertools模塊等多種方法。 一、列表生成式 列表生成式是Python中最常…

    編程 2025-04-28
  • TFN MR56:高效可靠的網路環境管理工具

    本文將從多個方面深入闡述TFN MR56的作用、特點、使用方法以及優點,為讀者全面介紹這一高效可靠的網路環境管理工具。 一、簡介 TFN MR56是一款多功能的網路環境管理工具,可…

    編程 2025-04-27
  • 用Pythonic的方式編寫高效代碼

    Pythonic是一種編程哲學,它強調Python編程風格的簡單、清晰、優雅和明確。Python應該描述為一種語言而不是一種編程語言。Pythonic的編程方式不僅可以使我們在編碼…

    編程 2025-04-27
  • Python生成10萬條數據的高效方法

    本文將從以下幾個方面探討如何高效地生成Python中的10萬條數據: 一、使用Python內置函數生成數據 Python提供了許多內置函數可以用來生成數據,例如range()函數可…

    編程 2025-04-27
  • Gino FastAPI實現高效低耗ORM

    本文將從以下多個方面詳細闡述Gino FastAPI的優點與使用,展現其實現高效低耗ORM的能力。 一、快速入門 首先,我們需要在項目中安裝Gino FastAPI: pip in…

    編程 2025-04-27

發表回復

登錄後才能評論