R语言 使用平滑线连接散点图上的点

R语言 使用平滑线连接散点图上的点

平滑线,也被称为平滑线,是指通过一组数据点绘制的一条线,它代表了数据的总体趋势,同时将随机波动或噪音的影响降到最低。换句话说,它是一种在数据集中代表一般模式或趋势的方法,同时减少偏离该模式的个别数据点的影响。

有几种方法可用于创建平滑线,如线性回归、黄土和样条。每种方法都有自己的优点和缺点,方法的选择将取决于数据的具体特征和分析的目标。

当我们在散点图上绘制一条平滑线时,它可以帮助我们识别数据中的基本模式,并根据该模式对未来的数值进行预测。它还有助于识别数据中的异常值(如果有的话),并给出一个关于数据传播的总体概念。

它对于探索两个或多个变量之间的关系也很有用,特别是当数据点密集或重叠时。

如何安装GGplot2库

你可以通过在R控制台运行以下命令来安装ggplot2库。

install.packages("ggplot2")
R

然后,你可以通过运行以下命令加载该库。

library(ggplot2)
R

确保你在安装软件包时连接到了互联网。一旦软件包安装完毕并加载成功,你就可以继续编写代码,你应该不会遇到错误信息。

geom_smooth()函数 用于在R编程语言中使用ggplot2绘制平滑线。这个函数是一个geom,是ggplot2中的一种绘图层,它可以用+运算符添加到绘图中。

语法

geom_smooth(mapping = NULL, data = NULL, stat = "smooth", position = "identity",
..., method = "auto", formula = y ~ x, se = TRUE, n = 80,
fullrange = FALSE, level = 0.95, span = NULL, method.args = list(),
method.fit = NULL, show.legend = NA, inherit.aes = TRUE)

参数

  • mapping: 美学映射,通常用aes()构建。
  • data: 包含要绘制的数据的数据框。
  • stat: 对该层数据使用的统计转换。
  • position :对本层重叠点使用的位置调整。
  • ... : 传递给基础平滑方法的附加参数。
  • method: 要使用的平滑方法。默认是 “自动”,对小数据集使用 “黄土”,对大数据集使用 “伽”。
  • formula: 用于指定x和y之间关系的公式。
  • se: 是否显示平滑估计的标准误差。
  • n: 用于计算平滑的观测值的数量。
  • fullrange: 如果为真,则在x的整个范围内计算平滑。
  • level: 要使用的置信区间的水平。
  • span: 平滑器的跨度,类似于loess函数中的 “窗口 “参数。
  • method.args: 传递给基础平滑方法的额外参数。
  • method.fit: 用于拟合平滑器的函数。
  • show.legend: 是否为该层显示一个图例。
  • inherit.aes: 如果为真,该层的美学属性将从绘图默认值中继承。

你可以设置这些参数来定制平滑线的外观和行为。最重要的是,你可以使用方法、se和跨度参数来控制平滑器的平滑方法、标准误差和跨度。

创建一个简单的平滑线

library(ggplot2)
  
# Create some example data
x <- 1:100
y <- sin(x)
df <- data.frame(x, y)
  
# Create the plot
ggplot(df, aes(x, y)) + 
  # Add points to the plot
  geom_point() +  
  geom_smooth(method = "loess", se=F,
              size=1.2, color="red",
              linetype = "dashed")+
  ggtitle("Smooth Line Plot") + 
  xlab("X-axis") + 
  ylab("Y-axis")
R

输出

在R中使用平滑线连接散点图上的点

这段代码用 “loess “方法创建了一个带有平滑线的正弦波图,一个宽度为1.2的红色虚线,并且不显示标准误差。它还在图中添加了轴标签和标题。

你也可以用你自己的数据来代替示例数据,你可以调整线型、颜色和其他属性,按照你的要求定制绘图。

绘图的不同方法

ggplot2中的geom_smooth()函数提供了几种绘制通过一组数据点的平滑线的方法。这些方法包括

  • “loess “:局部加权回归。这是一种非参数方法,对数据的一个子集拟合一个多项式回归模型,并使用一个加权函数对附近的数据点赋予更大的重要性。当数据是非线性的并且不是太大的话,它是很有用的。
  • “lm “:线性回归。它为数据拟合一个线性模型,当x和y之间的关系大致是线性的时候,它是有用的。
  • “glm “:泛化线性回归。它是线性回归的一个扩展,允许响应变量具有非正态分布,并且预测变量和响应变量之间的关系是非线性的。
  • “gam “:广义加权模型。它是一个灵活的框架,用于拟合预测变量和响应变量之间的非线性关系。
  • “rlm “:稳健的线性模型,它是线性模型的一个扩展,可以抵抗离群值。
  • “auto “:它将自动为小数据集选择 “loess”,为大数据集选择 “gam”。
  • “rq “:量化回归,它是线性模型的扩展,允许对响应变量的条件分布的量化进行估计。

你可以通过向geom_smooth()函数提供适当的参数来指定要使用的方法。例如,要使用 “loess “方法

library(ggplot2)
  
# Create some example data
x <- 1:100
y <- sin(x)
df <- data.frame(x, y)
  
# Create the plot
ggplot(df, aes(x, y)) + 
  # Add points to the plot
  geom_point() +  
  geom_smooth(method = "loess", se=F,
              size=1.2, color="red",
              linetype = "dashed")+
  ggtitle("Smooth Line Plot") + 
  xlab("X-axis") + 
  ylab("Y-axis")
R

并使用 “lm “方法

library(ggplot2)
  
# Create some example data
x <- 1:100
y <- sin(x)
df <- data.frame(x, y)
  
# Create the plot
ggplot(df, aes(x, y)) + 
  # Add points to the plot
  geom_point() +  
  geom_smooth(method = "lm", se=F,
              size=1.2, color="red",
              linetype = "dashed")+
  ggtitle("Smooth Line Plot") + 
  xlab("X-axis") + 
  ylab("Y-axis")
R

两种方法的输出差异

在R中使用平滑线连接散点图上的点

使用 “黄土 “和 “lm “方法绘制的线条的比较

你应该选择最能代表你的数据的基本模式并且与你的分析目标一致的方法。同样地,你可以尝试上述所有可用的方法。

可用的不同类型的线

ggplot2中的geom_smooth()函数允许你通过使用线条类型参数来改变平滑线的线条类型。线条类型参数的可能值包括:。

“dashed “:由破折号组成的线条。

dotted “:由点组成的线条。

dotdash “:由点和破折号交替组成的线条。

longdash “:由长破折号组成的线条。

twodash “:由两条破折号组成的线条。

如果你想改变线条,你可以随时改变线型。如果你在上面的代码中改变这些行,你可以改变行的类型。

例如:使用 “破折号 “线型。

library(ggplot2)
  
# Create some example data
x <- 1:100
y <- sin(x)
df <- data.frame(x, y)
  
# Create the plot
ggplot(df, aes(x, y)) + 
  # Add points to the plot
  geom_point() +  
  geom_smooth(method = "loess", se=F,
              size=1.2, color="red",
              linetype = "solid")+
  ggtitle("Smooth Line Plot") + 
  xlab("X-axis") + 
  ylab("Y-axis")
R

两种线型的输出差异

在R中使用平滑线连接散点图上的点

使用 “虚线 “和 “实线 “绘制的线条之间的比较

例1 :

library(ggplot2)
  
# Create some example data
x <- rnorm(100)
y <- x + rnorm(100)
df <- data.frame(x, y)
  
# Create the plot using geom_smooth
ggplot(df, aes(x, y)) + 
  # Add points to the plot
  geom_point() +  
  geom_smooth(method = "loess", se=F,
              size=1.2, color="red",
              linetype = "dashed")+
  ggtitle("Smooth Line Plot") + 
  xlab("X-axis") + 
  ylab("Y-axis")
R

输出

在R中使用平滑线连接散点图上的点

这段代码创建了一个数据的散点图,并在图中添加了一条平滑线,使用 “黄土 “方法,颜色为红色,宽度为1.2,并使用虚线类型。它还为该图添加了轴标签和标题。

例2:

library(ggplot2)
  
# Create some example data
x <- rnorm(100)
y <- x + rnorm(100)
df <- data.frame(x, y)
  
# Create the plot using geom_smooth
ggplot(df, aes(x, y)) + 
  geom_point() +  # Add points to the plot
  geom_smooth(method = "gam", se=F,
              size=1.2, color="purple",
              linetype = "dotted")+
  ggtitle("Smooth Line Plot") + 
  xlab("X-axis") + 
  ylab("Y-axis")
R

输出

在R中使用平滑线连接散点图上的点

这段代码创建了一个数据的散点图,并使用 “gam “方法、紫色、1.2的宽度和虚线类型为该图添加了一条平滑线。它还向图中添加了轴标签和标题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册