使用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/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

发表回复

登录后才能评论