ggplot2 方面的摘要图作为一个方面
Summary plot of ggplot2 facets as a facet
通常情况下,我们会根据变量生成分面来分解数据,但我们仍然希望将摘要视为分面的堆栈。这是一个例子:
library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Length,y=Petal.Length)) +
geom_point(aes(color=Species)) +
facet_wrap(~Species, ncol=2)
但是,我还希望其中一个方面是 3 个方面的叠加:
ggplot(data=iris, aes(x=Sepal.Length,y=Petal.Length)) +
geom_point(aes(color=Species))
有什么简单的方法吗?
非常感谢,
我编写了以下函数来复制数据集并在变量 all
下的数据下创建一个额外的副本。
library(ggplot2)
# Create an additional set of data
CreateAllFacet <- function(df, col){
df$facet <- df[[col]]
temp <- df
temp$facet <- "all"
return(rbind(temp, df))
}
该函数不会覆盖原始的分面数据列,而是创建一个名为 facet
的新列。这样做的好处是我们可以用原来的栏目来指定情节点的美观度。
df <- CreateAllFacet(iris, "Species")
ggplot(data=df, aes(x=Sepal.Length,y=Petal.Length)) +
geom_point(aes(color=Species)) +
facet_wrap(~facet, ncol=2)
我觉得在这种情况下图例是可选的,因为它在很大程度上重复了图中已有的信息。它可以很容易地用额外的行隐藏 + theme(legend.position = "none")
通常情况下,我们会根据变量生成分面来分解数据,但我们仍然希望将摘要视为分面的堆栈。这是一个例子:
library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Length,y=Petal.Length)) +
geom_point(aes(color=Species)) +
facet_wrap(~Species, ncol=2)
但是,我还希望其中一个方面是 3 个方面的叠加:
ggplot(data=iris, aes(x=Sepal.Length,y=Petal.Length)) +
geom_point(aes(color=Species))
有什么简单的方法吗?
非常感谢,
我编写了以下函数来复制数据集并在变量 all
下的数据下创建一个额外的副本。
library(ggplot2)
# Create an additional set of data
CreateAllFacet <- function(df, col){
df$facet <- df[[col]]
temp <- df
temp$facet <- "all"
return(rbind(temp, df))
}
该函数不会覆盖原始的分面数据列,而是创建一个名为 facet
的新列。这样做的好处是我们可以用原来的栏目来指定情节点的美观度。
df <- CreateAllFacet(iris, "Species")
ggplot(data=df, aes(x=Sepal.Length,y=Petal.Length)) +
geom_point(aes(color=Species)) +
facet_wrap(~facet, ncol=2)
我觉得在这种情况下图例是可选的,因为它在很大程度上重复了图中已有的信息。它可以很容易地用额外的行隐藏 + theme(legend.position = "none")