Sinaplot vs Violin plot – 为什么R语言中的Sinaplot比Violinplot好

Sinaplot vs Violin plot – 为什么R语言中的Sinaplot比Violinplot好

在这篇文章中,我们将学习sinaplot和小提琴图,并在R编程语言中对它们进行比较。

SinaplotViolin 都是R语言中有用的可视化工具,用于显示数据的分布情况。然而,与小提琴图相比,新浪图有一些优势,使其在某些情况下成为更好的选择。在这个概述中,我们将比较新浪图和小提琴图,并解释为什么新浪图可能是R中数据可视化的更好选择。

什么是绘图函数,为什么需要它们?

R中的 绘图函数 用于创建数据的可视化表示,这可以使我们更容易理解和分析数据。我们在R中使用绘图函数的一些主要原因包括。

  1. 探索: 绘制数据是探索数据集特征的一种有效方式,如分布、模式和异常值。它还可以帮助识别数据的任何问题,如缺失值或错误。
  2. 交流: 绘制数据是向他人交流分析结果的一种有效方式。可视化比原始数据更容易理解,可以用简单直观的方式来传达复杂的想法。
  3. 模型评估: 绘制数据也可用于评估模型的性能,如统计或机器学习模型。它可以帮助识别数据中可能没有被模型捕获的任何模式或趋势,这可以用来改善模型的性能。
  4. 决策: 绘制数据可以帮助做出更好的决策,提供数据的可视化表示,可以用来识别趋势和模式。它还可以用来识别需要进一步分析的领域。
  5. 识别异常值: 绘制数据可以帮助识别数据中的异常值,这些异常值可能是由测量错误或数据输入错误造成的。

总之,R语言中的绘图函数是可视化数据的强大工具,可以用来探索、理解,并以清晰直观的方式交流分析的结果。R有各种各样的绘图函数可用,可以根据数据和所做的分析来创建不同类型的图。在这篇文章中,我们将只学习两种图,即 sinaplot()violinplot()

小提琴图

维林图 是箱形图和核密度图的结合。它通过为每个级别绘制小提琴形图来显示数据在分类变量所有级别的分布。琴形图用琴的宽度显示数据的密度,箱形图用箱和须显示数据的汇总统计。此外,小提琴图通过内核密度显示数据分布,内核密度是对数据的概率密度函数的平滑估计。

violinplot()函数是 “ggplot2 “包的一部分,可以用以下命令安装。

install.packages("ggplot2")
R

语法

ggplot(data, aes(x = x_variable, y = y_variable, fill = group_variable))+geom_violin(trim = TRUE/FALSE, draw_quantiles = c(0.25, 0.5, 0.75) )

参数

  • data: 数据框的名称。
  • aes(x = x_variable, y = y_variable): x轴和y轴的变量。
  • fill = group_variable: 对数据进行分组的变量,用不同的颜色填充小提琴。
  • trim: 是否去除小提琴图的尾部。
  • draw_quantiles: 在小提琴图上显示的量值。

例子 1:

在这个例子中,我们使用 rnorm() 函数创建了三组数据。然后我们用数据和组的信息创建了一个数据框。然后我们使用 ggplot2包 创建了一个小提琴图,传入数据框并指定x和y变量以及组变量。我们还可以添加标题、x和y标签,同时指定 geom_violin() 函数来创建小提琴图。我们用 trim = FALSE 来显示完整的小提琴, draw_quantiles = c(0.25, 0.5, 0.75) 来显示小提琴中的四分位数。

# Import required library
library(ggplot2)
  
# Create some example data
set.seed(123)
data1 <- rnorm(50, mean = 5,
               sd = 2)
data2 <- rnorm(50, mean = 8,
               sd = 1)
data3 <- rnorm(50, mean = 10,
               sd = 3)
  
# Create a data frame with the data
# and group information
data_frame <- data.frame(x = c(data1,
                               data2,
                               data3),
              group = rep(c("Group 1",
                            "Group 2", 
                            "Group 3"),
                           each = 50))
  
# Create the violin plot
ggplot(data = data_frame, aes(x = group, y = x,
                              fill = group)) + 
              geom_violin(trim = FALSE,
              draw_quantiles = c(0.25, 0.5, 0.75)) + 
              ggtitle("Violin Plot Example") +
              xlab("Group") +ylab("Value")
R

输出

Sinaplot vs Violin plot - 为什么R语言中的Sinaplot比Violinplot好?

例2:

在这个例子中,我们创建了一个小提琴图,比较不同汽缸数的车辆每加仑的分布。该图用小提琴的宽度显示了数据的密度,盒形图用盒和须显示了数据的汇总统计。此外,小提琴图通过内核密度显示数据分布,内核密度是对数据的概率密度函数的平滑估计。

# Importing library and data set
library(ggplot2)
data(mtcars)
  
# Creating a violin plot
ggplot(mtcars, aes(x = factor(cyl),
  y = mpg, fill = factor(cyl))) + 
  geom_violin(trim = TRUE,
  draw_quantiles = c(0.25, 0.5, 0.75)) +
  geom_boxplot(width = 0.1,
               fill = "white") +
  ggtitle("Violin Plot of Miles per Gallon by Number of Cylinders") +
  xlab("Number of Cylinders") +
  ylab("Miles per Gallon")
R

输出

Sinaplot vs Violin plot - 为什么R语言中的Sinaplot比Violinplot好?

正方形图

Sinaplot 是小提琴图的一个变种。它通过绘制每个级别的正弦波形状来显示分类变量的所有级别的数据分布。正弦图用正弦波的振幅来显示数据的密度,也用内核密度来显示数据的分布。新浪图使用正弦波形状来表示数据的分布,而不是传统的小提琴形状。这使得数据的表示更加紧凑,在处理大型数据集或有许多重叠点的数据集时,这可能很有用。

要在R中绘制 sinaplot ,我们需要有 “plyr “包和 “sinaplot “包。执行下面的命令来安装它们。

install.packages("plyr")
R
install.packages("sinaplot")
R

语法

sinaplot(x, groups, …)

参数

  • x: 一个数值向量
  • groups: 一个因子或字符向量,定义在sinaplot中要分离的组。
  • ...:附加参数,如 col , pch , xaxt , ann , bty 等。

例1:

在这篇文章中,我们将使用虹膜数据集的y轴上的萼片长度和x轴上的物种来创建一个正弦图。

# Import required library
library(sinaplot)
  
# Load data set
data("iris")
  
# Plot graph
sinaplot(Sepal.Length ~ Species,
         data = iris,
         pch = 20, 
         col = rainbow(3),
         ann = FALSE,
         bty = "n")
R

输出

Sinaplot vs Violin plot - 为什么R语言中的Sinaplot比Violinplot好?

例2:

在这个例子中,我们使用R语言中的 “空气质量 “内置数据集创建了一个sinaplot。”sinaplot “库中的sinaplot()函数被用来绘制 “臭氧 “和 “风 “之间的关系。

# Import required library
library(sinaplot)
  
# Load dataset
data("airquality")
  
# Plot graph
sinaplot(Ozone ~ Month,
         data = airquality,
         pch = 20, 
         col = rainbow(5),
         ann = FALSE,
         bty = "n")
R

输出

Sinaplot vs Violin plot - 为什么R语言中的Sinaplot比Violinplot好?

小提琴图和sinaplot的主要区别。

  1. 维度: 正弦图是一个三维散点图,而小提琴图是一个二维图。
  2. 目的: 当数据具有高度散点时,正弦图用于可视化连续变量的分布,而小提琴图则用于显示连续变量在单一维度上的分布。
  3. 视觉表现: 正弦图显示数据在所有三个维度上的分布,显示x、y和z变量之间的关系,而小提琴图显示数据在单一维度上的分布。
  4. 数据分布的显示: 正弦图显示数据在三个维度上的分布,而小提琴图则显示数据的整个分布。
  5. 平滑性: 正弦图是一种散点图,显示单个数据点,而小提琴图是直方图的平滑版本。
  6. 形状: 正弦图在三维空间中表示,可以有任何形状,而小提琴图在二维空间中表示,有一个类似小提琴的形状。
  7. 离群值: 正弦图可以更清楚地显示离群值,因为它是一个显示单个数据点的散点图,而小提琴图则不能清楚地显示离群值。
  8. 制图方法: 正弦图通常使用三维散点图和在X-Y平面上的旋转来绘制,而小提琴图则使用平滑版的直方图来绘制。
  9. 复杂性: 正弦图显示三个维度的数据,因此解释起来比较复杂,而小提琴图显示一个维度的数据,因此解释起来比较简单。
  10. 额外信息: 小提琴图可以提供额外的信息,如中位数、平均值和核心密度估计值,而正弦图不提供这些信息。

为什么在R中Sinaplot比Violinplot

  • Violinplot和Sinaplot都是概率密度图的类型,可以用来可视化数据集的分布。然而,两者之间有一些关键的区别,可能使一个比另一个更适合于特定的用例。
  • 与小提琴图相比,新浪图的一个优点是它们不容易出现过度绘制的情况。这是因为新浪图使用正弦波形状来表示数据的分布,而不是传统的小提琴形状。这使得数据的表示更加紧凑,这在处理大型数据集或有许多重叠点的数据集时很有用。
  • 正弦图的另一个优点是,它们可以更有效地显示数据集的基本分布。这是因为新浪图中使用的正弦波形状能够捕捉到分布的更细微的特征,如偏度或峰度,这些特征在小提琴图中可能不那么容易看到。
  • 最后,新浪图还提供了一种更直观的方式来比较多个数据集的分布。这是因为新浪图中使用的正弦波形状可以更直接地比较不同数据集之间的分布振幅。
  • 小提琴图更常见,对于不是数据科学家的人来说更容易解释。它们也有更多的自定义选项,比如添加额外的信息,如箱形图和显示每个类别中的观察值的数量。
  • 最终,使用小提琴图还是新浪图的选择将取决于你的分析的具体要求和你的数据集的特点。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册