画一个正方形
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()
结果:
从高度和宽度相等的意义上说,您的图形确实是一个正方形,但是 x
和 y
轴未强制以相同的间距显示,因此它们可能不会占用显示或打印的长度相同。有几种方法可以约束轴,因此 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 创建
我想在 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()
结果:
从高度和宽度相等的意义上说,您的图形确实是一个正方形,但是 x
和 y
轴未强制以相同的间距显示,因此它们可能不会占用显示或打印的长度相同。有几种方法可以约束轴,因此 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 创建