У меня есть большой фрейм данных, где я хочу сделать диаграмму рассеяния, где помечены только значения max / min.
some_df <- data.frame(
"Sport" = c(1:5),
"avg_height" = c(178, 142, 200, 135, 182),
"avg_weight" = c(66, 61, 44, 77, 100))
Я пытался:
library(dplyr)
library(ggplot2)
some_df %>%
ggplot(aes(avg_weight, avg_height, label = Sport)) +
geom_point(shape = 21) +
geom_text(data = subset(avg_height == max(avg_height)))
Но получаю ошибки, сообщающие, что avg_height
не найден.
Я также пытался с geom_text
geom_text(aes(label = ifelse(avg_height=max(avg_height), as.character(Sport), '')),
hjust=0, vjust=0)
с ошибкой для Sport
не найдено.
Так что я могу либо пометить все, либо ничего, но с большими данными в фрейме читать будет невозможно.Если бы я мог раскрасить только максимальные / минимальные значения, это тоже было бы хорошо.Я экспериментировал с созданием нового столбца и попыткой объединения с новыми переменными, как показано ниже, но это не помогло мне.
maxw <- some_df %>% summarise_each(Max = max(avg_weight))
maxh <- some_df %>% mutate(summarise(Max = max(avg_height)))
Диаграмма рассеяния, которую я хочу, с метками только для максимума и минимума как avg_heigt, так и avg_weight.