画一个正方形

Drawing a Square

我想在 R 中画一个正方形:

ggplot() + 
    geom_rect(aes(xmin = 1, xmax = sqrt(pi), ymin = 1, ymax = sqrt(pi)))

但这会产生一个看起来更像矩形的形状 - 我认为这是因为缩放比例不正确?

有人可以告诉我如何解决这个问题吗?

一种方式:

ggplot() + 
  geom_rect(aes(xmin = 1, 
                xmax = sqrt(pi), 
                ymin = 1, 
                ymax = sqrt(pi))) + 
  coord_equal()

结果:

从高度和宽度相等的意义上说,您的图形确实是一个正方形,但是 xy 轴未强制以相同的间距显示,因此它们可能不会占用显示或打印的长度相同。有几种方法可以约束轴,因此 y 中的 1 个单位与 x 中的 1 个单位大小相同。

library(ggplot2)

p <- ggplot() + 
  geom_rect(aes(xmin = 1, xmax = sqrt(pi), ymin = 1, ymax = sqrt(pi)))

p

p + coord_equal()

p + coord_fixed()

p + theme(aspect.ratio = 1)

reprex package (v2.0.1)

于 2022-01-31 创建