R 如何放大部分打印并删除缩放区域外的注释?
我用R 如何放大部分打印并删除缩放区域外的注释?,r,ggplot2,geom-text,R,Ggplot2,Geom Text,我用geom\u rect创建了一个绘图,并用geom\u text\u repel添加了注释,但是当我想创建几个绘图时,我放大了原始绘图的一部分。缩放区域外区域的标签也会出现 这是一个简单的例子: start = c(1, 5,8, 14, 19, 25) end =c(3, 6,12, 16, 22, 30) label = c(1,2,3, 4, 5, 6) library(ggplot2) library(ggrepel) regions = tibble::tibble(label,
geom\u rect
创建了一个绘图,并用geom\u text\u repel
添加了注释,但是当我想创建几个绘图时,我放大了原始绘图的一部分。缩放区域外区域的标签也会出现
这是一个简单的例子:
start = c(1, 5,8, 14, 19, 25)
end =c(3, 6,12, 16, 22, 30)
label = c(1,2,3, 4, 5, 6)
library(ggplot2)
library(ggrepel)
regions = tibble::tibble(label, start, end)
ggplot() +
scale_x_continuous() +
scale_y_continuous(name = "") +
geom_rect(
data = regions,
mapping = aes(
xmin = start,
xmax = end,
ymin = 1.5,
ymax = 1.8),
color = "black",
fill = "#56B4E9"
) +
geom_text_repel(
data = regions,
aes(
x = start + (end - start) / 2,
y = 1.8,
label = label,
),
size = 10,
force_pull = 0,
nudge_y = 0.05,
direction = "x",
angle = 90,
vjust = 0,
segment.size = 0.5,
) +
ylim(1.38, 2.2) +
ylab("") +
xlab("") +
theme_minimal()
此代码生成此绘图:
我想放大方框3,所以我尝试添加+xlim(8,12)
或+facet\u zoom(xlim=c(8,12))
,但缩放后的绘图具有方框1、方框2的注释(标签)。。。如图所示,在侧面(放大图右侧为1,2,左侧为4,5,6)
与+xlim(8,12)
如何删除缩放区域外的标签(注释)(缩放图右侧的1,2和左侧的4,5,6?我可以想到两个快速修复方法,第一个是您已经提到的方法。也许你打错了,因为我可以很好地运行它
xlim(8,12)
xlim()
,因为它会丢弃所有其他不符合条件的点。虽然这对你的情况可能是有利的
coord\u cartesian()
对区域进行子集设置并正确放大
这会产生相同的图像(据我所知)为了快速修复,您只需在'geom_text_repel()'调用中对
区域
数据进行子集,以仅包含标签3。谢谢,如果我在数据
中对区域
参数进行子集设置,请,子集是一个向量,而data
参数只接受一个数据帧。如果我能做data=(regions$label==3)
非常感谢,我不知道你能使用coord_cartesian(xlim=c(8,12))
但我还是遇到了同样的问题。我不知道为什么你的图是干净的,并且没有在边上包含任何1,2,4,5,6的标签。我确实复制了你这里的代码,并将其粘贴在工作室的干净环境中,但我无法重新生成与你相同的结果。我的情节仍然与原问题中的第三个情节相似。@Sam,这很奇怪。作为旁注,我稍微将代码编辑为regions=data.frame(label,start,end)
。我不完全清楚,但可能是由于您的软件包版本或R版本。能否显示您的sessionInfo()
?如果我使用data=subset(regions,regions$label==3)
在geom\u text\u repel中对区域数据进行子集化,以仅包含标签3,那么它就起作用了。非常感谢你:)
library(ggrepel)
start = c(1, 5,8, 14, 19, 25)
end =c(3, 6,12, 16, 22, 30)
label = c(1,2,3, 4, 5, 6)
regions = data.frame(label, start, end)
ggplot() +
scale_x_continuous() +
scale_y_continuous(name = "") +
geom_rect(
data = regions,
mapping = aes(
xmin = start,
xmax = end,
ymin = 1.5,
ymax = 1.8),
color = "black",
fill = "#56B4E9"
) +
geom_text_repel(
data = regions,
aes(
x = start + (end - start) / 2,
y = 1.8,
label = label,
),
size = 10,
force_pull = 0,
nudge_y = 0.05,
direction = "x",
angle = 90,
vjust = 0,
segment.size = 0.5,
) +
ylim(1.38, 2.2) +
xlim(8, 12) +
ylab("") +
xlab("") +
theme_minimal()
ggplot() +
scale_x_continuous() +
scale_y_continuous(name = "") +
geom_rect(
data = regions,
mapping = aes(
xmin = start,
xmax = end,
ymin = 1.5,
ymax = 1.8),
color = "black",
fill = "#56B4E9"
) +
geom_text_repel(
data = subset(regions, label == 3),
aes(
x = start + (end - start) / 2,
y = 1.8,
label = label,
),
size = 10,
force_pull = 0,
nudge_y = 0.05,
direction = "x",
angle = 90,
vjust = 0,
segment.size = 0.5,
) +
ylim(1.38, 2.2) +
coord_cartesian(xlim = c(8, 12)) +
ylab("") +
xlab("") +
theme_minimal()