如何使用 ggplot2 删除 facet_wrap 图中的额外列?
How to remove extra column in facet_wrap plot with ggplot2?
我正在尝试使用 facet_wrap
和不平衡分组数据生成一个分面图,它提供了一个带有额外空白轴列的图。
如段落所示,我想生成一个没有最右边轴列的图。
这是一个示例代码:
library(ggplot2)
name <- c(factor(letters[1:4]),factor(LETTERS[1:3]))
room <- rep(c('A','B'),c(4,3))
goal <- c(rnorm(7,mean=60,sd=10))
test <- data.frame(name,goal,room)
test %>% ggplot(aes(name, goal))+
facet_wrap(~factor(room))+
geom_bar(stat = "identity")
'scales="free"'方式:自动设置,可以手动设置吗?
facetted_pos_scales
in ggh4x
由@teunbrand 开发解决了这个问题,thnaks!这里是补充代码:
library(ggh4x)
scales <- list(
scale_y_continuous(limits = c(0, 100)),
scale_y_continuous(limits = c(0, 80))
)
test %>% ggplot(aes(name, goal))+
facet_wrap(~factor(room), scales="free")+
geom_bar(stat = "identity")+
facetted_pos_scales(y=scales)
更新操作评论:
这有帮助吗:您可以使用 coord_cartesian(ylim = c(0, 90))
设置 ylim
:
test %>% ggplot(aes(name, goal))+
geom_bar(stat = "identity")+
coord_cartesian(ylim = c(0, 100)) +
facet_wrap(~factor(room), scales="free")
使用scales="free"
代替scales="free_x"
library(ggplot2)
name <- c(factor(letters[1:4]),factor(LETTERS[1:3]))
room <- rep(c('A','B'),c(4,3))
goal <- c(rnorm(7,mean=60,sd=10))
test <- data.frame(name,goal,room)
test %>% ggplot(aes(name, goal))+
facet_wrap(~factor(room), scales="free")+
geom_bar(stat = "identity")
我正在尝试使用 facet_wrap
和不平衡分组数据生成一个分面图,它提供了一个带有额外空白轴列的图。
如段落所示,我想生成一个没有最右边轴列的图。
这是一个示例代码:
library(ggplot2)
name <- c(factor(letters[1:4]),factor(LETTERS[1:3]))
room <- rep(c('A','B'),c(4,3))
goal <- c(rnorm(7,mean=60,sd=10))
test <- data.frame(name,goal,room)
test %>% ggplot(aes(name, goal))+
facet_wrap(~factor(room))+
geom_bar(stat = "identity")
'scales="free"'方式:自动设置,可以手动设置吗?
facetted_pos_scales
in ggh4x
由@teunbrand 开发解决了这个问题,thnaks!这里是补充代码:
library(ggh4x)
scales <- list(
scale_y_continuous(limits = c(0, 100)),
scale_y_continuous(limits = c(0, 80))
)
test %>% ggplot(aes(name, goal))+
facet_wrap(~factor(room), scales="free")+
geom_bar(stat = "identity")+
facetted_pos_scales(y=scales)
更新操作评论:
这有帮助吗:您可以使用 coord_cartesian(ylim = c(0, 90))
设置 ylim
:
test %>% ggplot(aes(name, goal))+
geom_bar(stat = "identity")+
coord_cartesian(ylim = c(0, 100)) +
facet_wrap(~factor(room), scales="free")
使用scales="free"
代替scales="free_x"
library(ggplot2)
name <- c(factor(letters[1:4]),factor(LETTERS[1:3]))
room <- rep(c('A','B'),c(4,3))
goal <- c(rnorm(7,mean=60,sd=10))
test <- data.frame(name,goal,room)
test %>% ggplot(aes(name, goal))+
facet_wrap(~factor(room), scales="free")+
geom_bar(stat = "identity")