gpt4 book ai didi

r - 将 coord_flip() 应用于单层

转载 作者:行者123 更新时间:2023-12-04 04:42:29 25 4
gpt4 key购买 nike

我想要一个箱线图,在我的直方图下方显示相同的分布。
下面的代码几乎可以工作,但是 coord_flip()正在应用于所有层,而不仅仅是 geom_boxplot层。

plot1<-ggplot(newdatahistogram, aes_string(x=newdatahistogram[RawLocation])) + 
xlab(GGVar) + ylab("Proportion of Instances") +
geom_histogram(aes(y=..density..), binwidth=1, colour="black", fill="white",origin=-0.5) +
scale_x_continuous(limits=c(-3,6), breaks=seq(0,5,by=1), expand=c(.01,0)) +
geom_boxplot(aes_string(x=-1, y=newdatahistogram[RawLocation])) + coord_flip()

我如何申请 coord_flip()到单层?

谢谢!

最佳答案

我用一点技巧让它工作了;

plot1 <- ggplot(newdatahistogram, aes_string(x=newdatahistogram[RawLocation], fill=(newdatahistogram[,"PQ"]))) + 
xlab(GGVar) + ylab("Proportion of Observation") +
geom_histogram(aes(y=..density..), binwidth=1, colour="black", origin=-0.5) +
scale_x_continuous(limits=c(-1,6), breaks=seq(0,5,by=1), expand=c(.01,0)) +
scale_y_continuous(limits=c(-.2,1), breaks=seq(0,1,by=.2))
theme(plot.margin = unit(c(0,0,0,0), "cm"))

plot_box <- ggplot(newdatahistogram) +
geom_boxplot(aes_string(x=1, y=newdatahistogram[RawLocation])) +
scale_y_continuous(breaks=(0:5), labels=NULL, limits=c(-1,6), expand=c(.0,-.03)) +
scale_x_continuous(breaks=NULL) + xlab(NULL) + ylab(NULL) +
coord_flip() + theme_bw() +
theme(plot.margin = unit(c(0,0,.0,0), "cm"),
line=element_blank(),text=element_blank(),
axis.line = element_blank(),title=element_blank(), panel.border=theme_blank())

PB = ggplotGrob(plot_box)
plot1 <- plot1 + annotation_custom(grob=PB, xmin=-1.01, xmax=5.95, ymin=-.3,ymax=0)

这会将旋转后的箱线图保存为 grob 对象并将其插入到直方图下方的图中。

我需要稍微玩一下扩展元素才能使音阶对齐,
但它有效!

说真的,我认为 ggplot 应该有一个没有 cord_flip() 的水平箱线图......我试图编辑箱线图代码,但这对我来说太难了!

试图发布图片,但没有足够的声誉

关于r - 将 coord_flip() 应用于单层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com