Применение нового geom_
изменяет существующие уровни факторов в ggplot
.
Представьте себе построение матрицы корреляции с точками, обозначающими корреляции ниже диагонали, и надписями выше.
library(tidyverse)
library(magrittr)
library(broom)
t1 <- mtcars %>%
cor %>%
as_tibble %>%
mutate(
v1 = mtcars %>% names
) %>%
gather(
v2, cor, -v1
) %>%
filter(
cor != 1
)
Этот объект (fl
) - это желаемое расположение уровней факторов
fl <- mtcars %>%
factanal(factors = 1) %>%
tidy %>%
arrange(fl1) %>%
use_series(variable)
Настройка этого t1
объекта для построения
t1 %<>%
modify_at(
1:2,
~factor(., fl)
) %>%
mutate(
v1_num = v1 %>%
as.numeric,
v2_num = v2 %>%
as.numeric,
lab = cor %>%
round(2) %>%
as.character
)
Затем нанесение первого объекта
p1 <- ggplot() +
geom_point(
aes(v1, v2,
color = cor, size = abs(cor)),
data = t1 %>%
filter(
v1_num <= v2_num
)
)
Это работает как нужно.Но попытка нанести метки выше горизонтали меняет уровни факторов
p1 +
geom_text(
aes(v1, v2, label = lab),
t1 %>%
filter(
v1_num >= v2_num
)
)
возвращает
Как сохранить уровни поддержкис последующими geom_
с?