如何使用 ggplot2 在 R 中以文本为点制作箱线图?
在本文中,我们将讨论如何使用 R 编程语言中的 ggplot2 包制作以文本为点的箱线图。
箱线图是一种图表,显示来自五个数字摘要的数据,包括集中趋势的度量之一。这五个汇总数字是最小值、第一四分位数、中位数、第三四分位数和最大值,这有助于我们通过视觉表示分析不同的统计量度。
要导入和安装 ggplot2 包,我们需要遵循以下语法:
install.package('ggplot2') # To install
import('ggplot2') # To import
创建基本箱线图
我们可以使用 R 语言中 ggplot2 包的 geom_boxplot()函数创建一个基本的箱线图。
句法:
ggplot(dataframe, aes( x, y, color ) ) + geom_boxplot()
例子:
在这个例子中,一个基本的箱线图是使用 ggplot2 包的 geom_boxplot函数制作的。
示例中使用的 CSV 文件可在此处下载。
R
# Load library ggplot2
library(ggplot2)
# read sample_data from csv as a dataframe
sample_data <- read.csv("df.csv")
# use sample_data to plot a boxplot
# Color the plot by group using color parameter
ggplot(sample_data, aes(x=group, y=value, color=group))+
geom_boxplot()
R
# Load library ggplot2
library(ggplot2)
# read sample_data from csv as a dataframe
sample_data <- read.csv("df.csv")
# use sample_data to plot a boxplot
# Add jitter points to boxplot using
# geom_jitter() function
ggplot(sample_data, aes(x=group, y=value, color=group))+
geom_boxplot()+
geom_jitter()
R
# Load library tidyverse
library(tidyverse)
# read sample_data from csv as a dataframe
sample_data <- read.csv("df.csv")
# use sample_data to plot a boxplot
# Add jitter points to boxplot using geom_jitter()
# function
ggplot(sample_data, aes(x=group,y=value, label = Label, color=group))+
geom_boxplot()+
geom_text(check_overlap = TRUE, position=position_jitter(width=0.15))
输出:
添加数据点作为叠加层:
要将抖动数据点作为覆盖添加到箱线图中,我们将使用 ggplot2 包的 geom_jitter()函数。此函数在箱线图上添加一个图层,并在其上绘制实际点。
句法:
ggplot(dataframe, aes( x, y, color ) ) + geom_boxplot() + geom_jitter()
参数:
- x是分类变量
- y是定量变量
- z是组在颜色图中使用的分类变量。
例子:
在此示例中,使用 ggplot2 包的 geom_boxplot函数制作了箱线图。使用 geom_jitter()函数将实际数据点叠加到箱线图上。
R
# Load library ggplot2
library(ggplot2)
# read sample_data from csv as a dataframe
sample_data <- read.csv("df.csv")
# use sample_data to plot a boxplot
# Add jitter points to boxplot using
# geom_jitter() function
ggplot(sample_data, aes(x=group, y=value, color=group))+
geom_boxplot()+
geom_jitter()
输出:
用标签替换数据点
现在要分析数据,我们将使用带有参数位置的 geom_text()函数将数据点替换为它们各自的标签。 geom_text()函数用数据标签替换数据点,但所有标签都成一条直线。为了让它抖动,我们使用位置参数作为 position_jitter()。
句法:
ggplot(dataframe, aes( x, y, color ) ) + geom_boxplot() + geom_text( position= position_jitter() )
例子:
在这里,使用 geom_text()函数将实际数据点作为标签文本覆盖到箱线图。
R
# Load library tidyverse
library(tidyverse)
# read sample_data from csv as a dataframe
sample_data <- read.csv("df.csv")
# use sample_data to plot a boxplot
# Add jitter points to boxplot using geom_jitter()
# function
ggplot(sample_data, aes(x=group,y=value, label = Label, color=group))+
geom_boxplot()+
geom_text(check_overlap = TRUE, position=position_jitter(width=0.15))
输出: