使用 ggplot 2 在同一图上为 yes/no 变量创建两个单独的箱线图
Creating two separate Boxplots for yes/no variable on same plot using ggplot 2
我正在尝试创建一个箱线图,其中 x 轴上有一个二进制 1/2 变量。当我使用 ggplot 创建我的箱线图和循环时,我只得到一个以 1.5 为中心的大箱线图,而我想要一个 1 处的箱线图和一个 2 处的箱线图。我是新手,所以任何帮助和额外阅读将不胜感激。下面是代码。
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome )
{
bp <- ggplot(mydata, aes_(as.name(myexposure), as.name(myoutcome))) +
geom_boxplot()
print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome )
{
bp <- ggplot(mydata, aes_(myexposure, as.factor(myoutcome))) +
geom_boxplot()
print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")
如果要根据变量值绘制多个箱线图,该变量必须是一个因子!
下面就按你的意思做吧
诀窍是 get
您要绘制的变量的值,因为您将它们作为字符串传递给函数。
library(ggplot2)
set.seed(7153)
ivf_dataset <- data.frame(
ART_CURRENT = sample.int(2, 100, TRUE),
H19_DMR_mean = rnorm(100)
)
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome ){
bp <- ggplot(mydata, aes(x = as.factor(get(myexposure)), y = get(myoutcome))) +
geom_boxplot()
print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")
我正在尝试创建一个箱线图,其中 x 轴上有一个二进制 1/2 变量。当我使用 ggplot 创建我的箱线图和循环时,我只得到一个以 1.5 为中心的大箱线图,而我想要一个 1 处的箱线图和一个 2 处的箱线图。我是新手,所以任何帮助和额外阅读将不胜感激。下面是代码。
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome )
{
bp <- ggplot(mydata, aes_(as.name(myexposure), as.name(myoutcome))) +
geom_boxplot()
print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome )
{
bp <- ggplot(mydata, aes_(myexposure, as.factor(myoutcome))) +
geom_boxplot()
print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")
如果要根据变量值绘制多个箱线图,该变量必须是一个因子!
下面就按你的意思做吧
诀窍是 get
您要绘制的变量的值,因为您将它们作为字符串传递给函数。
library(ggplot2)
set.seed(7153)
ivf_dataset <- data.frame(
ART_CURRENT = sample.int(2, 100, TRUE),
H19_DMR_mean = rnorm(100)
)
myboxplot <- function(mydata=ivf_dataset, myexposure, myoutcome ){
bp <- ggplot(mydata, aes(x = as.factor(get(myexposure)), y = get(myoutcome))) +
geom_boxplot()
print(bp)
}
myboxplot(myexposure = "ART_CURRENT", myoutcome = "H19_DMR_mean")