首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何绘制离散变量的不同x宽度的面元包装,同时确保列宽始终是相同的

如何绘制离散变量的不同x宽度的面元包装,同时确保列宽始终是相同的
EN

Stack Overflow用户
提问于 2022-08-13 13:00:04
回答 1查看 47关注 0票数 0

我正在寻找两样东西来实现我的数据的良好表现。

throughout.

  • Suitable
  1. 根据高度创建变化与变化的面膜以实现恒宽

重排序,便于视觉比较。

下面是我的代码

代码语言:javascript
复制
RI_pH<-data.frame(RI_pH)
RI_pH$Landcover<-factor(RI_pH$Landcover,levels =c("Bare","Vegetation","Mixed"))
RI_pH$Predictor<-factor(RI_pH$Predictor,levels=c("Landsat8","Landsat8 & Sentinel1",
                                              "Sentinel1","All Variables"))

bar<-ggplot(RI_pH,aes(x=Variable,y=RI,fill=Landcover))+
geom_col(width =0.5)+
facet_wrap(~Predictor,scales = "free")+
scale_x_discrete()+
theme(axis.text.x = element_text(angle = 90,  hjust=0.95,vjust=0.2, size=32))+
 theme(axis.text.y=element_text(size=32))+
theme(strip.text = element text(size=52, face=2))

jpeg(file="bar%03d.jpeg",width=1180,height=849,
  pointsize=52,bg="white",units="mm",res=95)
plot(bar)
dev.off()
EN

回答 1

Stack Overflow用户

发布于 2022-08-13 16:39:32

获得具有不同面宽的常数列宽的唯一保证是使用facet_grid(scales = "free_x", space = "free_x")拥有一行,因为在ggplot2的内置约束中无法容纳数据的配置(例如,面宽必须从一行对齐到下一行)。

代码语言:javascript
复制
library(ggplot2)
ggplot(mtcars, aes(as.factor(gear), wt, fill = as.factor(cyl))) +
  geom_col() +
  facet_grid(~carb, scales = "free_x", space = "free_x")

如果您想要一个更自定义的布局,您可能需要依赖像patchwork这样的包来帮助您组合绘图,但是我想不出一种简单的方法来保持列宽在行之间对齐。

代码语言:javascript
复制
library(patchwork)
a <- ggplot(subset(mtcars, carb <=3), 
       aes(as.factor(gear), wt, fill = as.factor(am))) +
  geom_col() +
  facet_grid(~carb, scales = "free_x", space = "free_x") 
b <- ggplot(subset(mtcars, carb > 3),
       aes(as.factor(gear), wt, fill = as.factor(am))) +
  geom_col() +
  facet_grid(~carb, scales = "free_x", space = "free_x")
(a / b) + plot_layout(guides = "collect")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73344506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档