📜  如何在 R 中使用 ggplot2 制作小提琴图?

📅  最后修改于: 2022-05-13 01:54:23.999000             🧑  作者: Mango

如何在 R 中使用 ggplot2 制作小提琴图?

小提琴图帮助我们可视化来自一个或多个类别的数值变量。它们与箱线图的相似之处在于它们使用五个汇总级别的统计数据来显示数值分布。但是小提琴图也有数值变量的密度信息。它允许通过显示它们的密度来可视化几个类别的分布。

在本文中,我们将讨论如何借助 R 编程语言中的 ggplot2 库来绘制小提琴图。要使用 ggplot2 包绘制小提琴图,我们使用 geom_violin()函数。

创建基本的小提琴图

这是使用 geom_violin()函数制作的基本小提琴图。我们在这个图中使用了由 R 语言原生提供的钻石数据框。



R
# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively.
ggplot(diamonds, aes(x=cut, y=price)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()


R
# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively
# color parameter is used to color the boundary of 
# plot according to category
ggplot(diamonds, aes(x=cut, y=price, color=cut)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()


R
# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively
# fill parameter is used to color the background of 
#plot according to category
ggplot(diamonds, aes(x=cut, y=price, fill=cut)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()


R
# load library ggplot2
library(ggplot2)
  
# Horizontal violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively.
ggplot(diamonds, aes(x=cut, y=price)) + 
  
# geom_violin() function is used to plow voilin plot
geom_violin()+
  
# coord_flip() function is used to make horizontal 
# voilin plot
coord_flip()


R
# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R 
# language natively.
ggplot(diamonds, aes(x=cut, y=price)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()+
  
# Stat_summary() function adds mean marker on plot
stat_summary(fun.y="mean", geom="point", size=2, color="red")


输出:

颜色定制

我们可以使用 ggplot2 的 aes()函数的颜色参数更改小提琴图的颜色。这会根据数据类别更改小提琴图边界的颜色。在这里,通过将 cut 作为参数颜色,根据它们的 cut 类别对绘图进行着色。

电阻

# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively
# color parameter is used to color the boundary of 
# plot according to category
ggplot(diamonds, aes(x=cut, y=price, color=cut)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()

输出:

我们可以使用 ggplot2 的 aes()函数的填充参数来更改小提琴图的背景颜色。这会根据数据类别更改小提琴图内部背景的颜色。



在这里,通过将剪切作为参数填充,根据剪切的类别对绘图进行着色。

电阻

# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively
# fill parameter is used to color the background of 
#plot according to category
ggplot(diamonds, aes(x=cut, y=price, fill=cut)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()

输出:

水平小提琴图

要将普通小提琴图转换为水平小提琴图,我们将 coord_flip()函数添加到 ggplot()函数。这会翻转绘图的坐标轴并将任何 ggplot2 绘图转换为水平绘图。

这是使用 coord_flip()函数制作的水平小提琴图。

电阻

# load library ggplot2
library(ggplot2)
  
# Horizontal violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R language natively.
ggplot(diamonds, aes(x=cut, y=price)) + 
  
# geom_violin() function is used to plow voilin plot
geom_violin()+
  
# coord_flip() function is used to make horizontal 
# voilin plot
coord_flip()

输出:



均值标记定制

在 ggplot2 中,我们使用stat_summary()函数来计算新的汇总统计数据并将其添加到图中。我们使用 stat_summary()函数和 ggplot()函数。

例子:

在此示例中,我们将使用 stat_summary()函数中的 fun.y 参数计算 y 轴变量的平均值。

电阻

# load library ggplot2
library(ggplot2)
  
# Basic violin plot
# diamonds dataframe has been used here
# diamonds dataframe is provided by R 
# language natively.
ggplot(diamonds, aes(x=cut, y=price)) + 
  
# geom_violin() function is used to plow voilin plot
  geom_violin()+
  
# Stat_summary() function adds mean marker on plot
stat_summary(fun.y="mean", geom="point", size=2, color="red")

输出:

此处,小提琴中心的点显示了 x 轴上每个类别数据的 y 轴平均值的变化。