Ale*_*ian 15 r ggplot2 geom-text

在图中,是否可以略微抖动状态缩写标签,以便它们不重叠?如果我使用check_overlap = TRUE,那么它会删除一些重叠的观察,我不希望这样.我也不想要geom_label_repel,因为它有标签伸出并穿过我所包含的45度线(我不想发生)
这是我的代码的相关部分供参考:
ggplot(df, aes(x = huff_margin_dem, y = margin16dem_state, label = abbrev)) +
geom_abline(intercept = 0) +
geom_text(fontface = "bold")
Run Code Online (Sandbox Code Playgroud)
J.C*_*Con 17
你试过position=position_jitter()吗?您可以调整width和height你的选择.
ggplot(df, aes(x = huff_margin_dem, y = margin16dem_state, label = abbrev)) +
geom_abline(intercept = 0) +
geom_text(fontface = "bold",position=position_jitter(width=1,height=1))
Run Code Online (Sandbox Code Playgroud)
编辑 仅操作某个标签的示例
+geom_text(fontface = "bold",
position=position_jitter(width=ifelse(df$abbrev=='KS',1,0),
height=ifelse(df$abbrev=='KS',1,0)))
Run Code Online (Sandbox Code Playgroud)
或多个标签
df$jit<-with(df, ifelse(abbrev == "KS" | abbrev == "LA", 1, 2))
+geom_text(fontface = "bold",
position=position_jitter(width=df$jit,height=df$jit))
Run Code Online (Sandbox Code Playgroud)
只是以为我会指出,这ggrepel::geom_text_repel将满足您的要求。考虑到示例中的某些文本已经与该行重叠,我认为这可能是您不喜欢的label部分geom_label_repel,因为背景将放置在文本后面,从而阻塞了该行。
使用您的示例:
ggplot(df) +
geom_text_repel(aes(x = huff_margin_dem,
y = margin16dem_state,
label = abbrev))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20560 次 |
| 最近记录: |