Вопрос

Я пытаюсь использовать ggplot2 для создания и маркировки диаграммы рассеяния.Переменные, которые я рисую, масштабированы таким образом, что горизонтальная и вертикальная оси отображаются в единицах стандартного отклонения (1,2,3,4 и т. д. от среднего значения).Я хотел бы иметь возможность маркировать ТОЛЬКО те элементы, которые выходят за определенный предел стандартных отклонений от среднего значения.В идеале эта маркировка должна основываться на другом столбце данных.

Есть ли способ сделать это?

Я просмотрел онлайн-руководство, но не смог найти ничего об определении меток для отображаемых данных.

Помощь приветствуется!

Спасибо!

БЭБ

Это было полезно?

Решение

Используйте подмножество:

library(ggplot2)
x <- data.frame(a=1:10, b=rnorm(10))
x$lab <- letters[1:10]
ggplot(data=x, aes(a, b, label=lab)) + 
  geom_point() + 
  geom_text(data = subset(x, abs(b) > 0.2), vjust=0)

Другие советы

Маркировку можно выполнить следующим образом:

library("ggplot2")
x <- data.frame(a=1:10, b=rnorm(10))
x$lab <- rep("", 10)   # create empty labels
x$lab[c(1,3,4,5)] <- LETTERS[1:4]   # some labels
ggplot(data=x, aes(x=a, y=b, label=lab)) + geom_point() + geom_text(vjust=0)

Подмножество вне функции ggplot:

library(ggplot2)
set.seed(1)
x <- data.frame(a = 1:10, b = rnorm(10))
x$lab <- letters[1:10]
x$lab[!(abs(x$b) > 0.5)] <- NA
ggplot(data = x, aes(a, b, label = lab)) + 
  geom_point() + 
  geom_text(vjust = 0) 

Использование qplot:

qplot(a, b, data = x, label = lab, geom = c('point','text'))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top