我有2个完全相同的情节,除了填充条纹的颜色在每个情节上都不同。由于不同图上的图例由于其上的名称大小而具有不同的宽度,因此图和图例之间的比例在每个图上变得不同。我需要让两者看起来都一样。
这是一个例子:
library(ggplot2)
x = c(rep("a",20),rep("b",10))
y = c(x = c(rep("BIGTEXT",20),rep("EVENBIGGERTEXT",10)))
df = data.frame(x,y)
p1 = ggplot(df,aes(x,fill=x)) + geom_bar()
p2 = ggplot(df,aes(y,fill=y)) + geom_bar()
p1
p2
答案 0 :(得分:3)
您可以将gtable宽度设置为公共值
library(gtable)
library(grid)
gl <- lapply(list(p1, p2), ggplotGrob)
gwidth <- do.call(unit.pmax, lapply(gl, "[[", "widths"))
gl <- lapply(gl, "[[<-", "widths", value = gwidth)
gridExtra::grid.arrange(grobs=gl)
或者,您可以set the panel size使用固定值。
答案 1 :(得分:0)
跟随@ baptiste的评论:可爱,但是,可以做到。但不保证这将在未来版本中有效。该解决方案取自here,但该解决方案也需要更新。
script
:uglify-js
(function doSomething () { … })();