我想减少矩形的大小,看到下面的图片,他们是大的。如果我将geom_rect
中的xmin
、xmax
、ymin
和ymax
调整为较小的值,例如.2
,则图形未格式化,矩形被分隔开。如何继续?
library(tidyverse)
df <- bind_rows(
expand_grid(x = 1:5, y = c(1, 2.2)),
expand_grid(x = 8:12, y = c(1, 2.2))
) %>%
arrange(y, x) %>%
mutate(
num = c(c(1, 0, 1, 1, 0), c(1, 0, 0, 1, 0), c(0, 1, 0, 1, 0), c(0, 1, 1, 1, 0)),
fill_color = ifelse(row_number() %in% c(c(11,12,13,14,15), c(16,17), c(8,9,10)), "skyblue", "white")
)
ggplot(df) +
geom_rect(aes(xmin = x - .5, xmax = x + .5, ymin = y - .5, ymax = y + .5, fill = fill_color), color = "black") +
geom_text(aes(x = x, y = y, label = num)) +
geom_segment(aes(x = 2.5, xend = 2.5, y = .4, yend = 2.8), arrow = arrow(length = unit(5, "pt"))) +
geom_segment(
aes(x = 5.7, xend = 7.3, y = 1.6, yend = 1.6),
linewidth = 3, lineend = "round", linejoin = 'round', color = "black",
arrow = arrow(length = unit(9, "pt"), type = "open")
) +
scale_fill_manual(values = c("skyblue", "white")) +
ylim(0, 4) +
xlim(0, 13) +
theme_void() + theme(
panel.background = element_rect(fill = 'white'),
plot.margin = unit(c(0, 0, 0, 0), "pt"),
legend.position = "none"
)
1条答案
按热度按时间nx7onnlm1#
一个选项是使用
coord_cartesian
更改限制,使图形看起来更小,如下所示:创建于2023-06-15带有reprex v2.0.2