一旦 ageom_violin中的點分布 via geom_sina,然后標記為 viageom_label_repel或 even geom_label,則該線指向 x 軸類別的中線。有沒有辦法擁有geom_label_repel甚至geom_label知道重點在geom_sina哪里?
例子:
library(dplyr)
library(ggforce)
library(ggplot2)
library(ggrepel)
ggplot(midwest, aes(state, area))
geom_violin()
geom_sina()
geom_label_repel(box.padding = 0.5, min.segment.length = 0.5, aes(label = county), data=midwest %>% subset(poptotal>1000000), size=3)

您可以看到標簽中的線如何始終到達中線,但不是點(請參閱密歇根州的 WAYNE 和奧克蘭縣)。
uj5u.com熱心網友回復:
我還沒有看到對此類問題的滿意答案。我見過的一般方法是使用映射轉換創建繪圖,然后提取轉換后的值,然后使用這些轉換后的值繪制圖層。
編輯:在每輪繪圖之前添加 set.seed
library(tidyverse)
set.seed(0)
a <- ggplot(midwest, aes(state, area))
geom_violin()
geom_sina()
a_guts <- ggplot_build(a)$data[[2]] %>%
bind_cols(midwest %>%
mutate(state_num = as.integer(as.factor(state))) %>%
select(state_num, area, county, poptotal)) %>%
subset(poptotal>1E6)
set.seed(0)
a geom_point(data = a_guts, aes(x = x, y = y),
size = 3, color = "red", shape = 22, fill = NA)
geom_label_repel(data = a_guts,
aes(x = x, y = y, label = county), color = "red",
box.padding = 2, min.segment.length = 0.5, size=3)

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315893.html
上一篇:如何在R中重命名繪圖的類別?
