如何让我的方面完美平方?

时间:2014-01-22 21:19:31

标签: r ggplot2 facets

我正在使用faceg_wrap和ggplot创建一个facet图。我的问题是我的方面总是看起来像非常短,非常宽的矩形,但我希望它们是方形的,这样它们更容易理解。理想情况下,我想指定我想要的列数,并让ggplot弄清楚绘图的高度应该是多少,以便所有刻面都是正方形。这可能吗?

4 个答案:

答案 0 :(得分:5)

也许aspect.ratio有帮助:

df <- data.frame(x = runif(100, 0,10), y = runif(100, 0, 50), z=gl(4,25))
ggplot(df, aes(x, y)) + 
  geom_point() + 
  facet_wrap(~ z, ncol = 4) + 
  theme(aspect.ratio = 1) # try with and without

答案 1 :(得分:0)

我理解这个问题与lukeA略有不同。我以为你希望这些地块以n x m的方式排列,尺寸尽可能接近“方形”。

ggplot(df, aes(x, y)) + 
  geom_point() + 
  facet_wrap(~ z, ncol = sqrt(length(levels(df$z))) )

enter image description here

答案 2 :(得分:0)

g = ggplotGrob(p)
g$respect = TRUE
require(grid)
grid.draw(g)

答案 3 :(得分:0)

使用coord_fixed(1)就可以了。似乎我使用的是较旧版本的ggplot,因此主题(aspect.ratio = 1)对我不起作用。

df <- data.frame(x = runif(100, 0,10), y = runif(100, 0, 50), z=gl(4,25))
ggplot(df, aes(x, y)) + 
  geom_point() + 
  facet_wrap(~ z, ncol = 4) + 
  coord_fixed(1)