有没有办法用简单的代码在单独的图中绘制 R 中的多个级别变量?
Is there a way to plot multiple levels variables in R in separate graph with a simple code?
我想知道是否有人知道如何执行这段代码,但每个级别都是单独绘制的。
sites<-levels(OrchardSprays$treatment)
par(mfcol=c(4,2))
for (i in 1:length(sites)) {
here_tmp<-sites[i]
plot(droplevels(subset(OrchardSprays, Site = here_tmp, select = c(treatment,decrease))))
}
这是它给我的输出。但我想要不同级别的不同图表。我不知道为什么它给我相同的图表...
您的问题似乎与您使用 subset
的方式有关。首先,数据集中没有名为 Site
的变量。其次,Site = here_tmp
不是逻辑表达式。
假设您的意思是 treatment
而不是 Site
,试试这个:
sites <- levels(OrchardSprays$treatment)
par(mfcol=c(4,2))
for (i in 1:length(sites)) {
here_tmp<-sites[i]
plot(droplevels(subset(OrchardSprays, treatment == here_tmp,
select = c(treatment,decrease))))
}
我不太确定这是否是您想要的结果,因为就我个人而言,我认为没有理由将它们放在不同的地块中。
如果有帮助,请告诉我!
我同意@SimonG 的观点,不清楚为什么要将每个级别绘制在单独的图表上,但这里有一种使用 ggplot2
的方法,它有一个很好的系统无需太多额外代码即可创建变量每个级别的图:
library(ggplot2)
ggplot(OrchardSprays, aes(treatment, decrease)) +
geom_boxplot() +
facet_wrap(~treatment, scales="free_x", ncol=2)
要将所有箱线图放在一张图中,只需删除最后一行:
ggplot(OrchardSprays, aes(treatment, decrease)) +
geom_boxplot()
我想知道是否有人知道如何执行这段代码,但每个级别都是单独绘制的。
sites<-levels(OrchardSprays$treatment)
par(mfcol=c(4,2))
for (i in 1:length(sites)) {
here_tmp<-sites[i]
plot(droplevels(subset(OrchardSprays, Site = here_tmp, select = c(treatment,decrease))))
}
这是它给我的输出。但我想要不同级别的不同图表。我不知道为什么它给我相同的图表...
您的问题似乎与您使用 subset
的方式有关。首先,数据集中没有名为 Site
的变量。其次,Site = here_tmp
不是逻辑表达式。
假设您的意思是 treatment
而不是 Site
,试试这个:
sites <- levels(OrchardSprays$treatment)
par(mfcol=c(4,2))
for (i in 1:length(sites)) {
here_tmp<-sites[i]
plot(droplevels(subset(OrchardSprays, treatment == here_tmp,
select = c(treatment,decrease))))
}
我不太确定这是否是您想要的结果,因为就我个人而言,我认为没有理由将它们放在不同的地块中。
如果有帮助,请告诉我!
我同意@SimonG 的观点,不清楚为什么要将每个级别绘制在单独的图表上,但这里有一种使用 ggplot2
的方法,它有一个很好的系统无需太多额外代码即可创建变量每个级别的图:
library(ggplot2)
ggplot(OrchardSprays, aes(treatment, decrease)) +
geom_boxplot() +
facet_wrap(~treatment, scales="free_x", ncol=2)
要将所有箱线图放在一张图中,只需删除最后一行:
ggplot(OrchardSprays, aes(treatment, decrease)) +
geom_boxplot()