ggplot2 Ярлыки точечного графика - PullRequest
12 голосов
/ 29 ноября 2009

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

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

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

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

Спасибо!

ВЕВ

Ответы [ 3 ]

17 голосов
/ 30 ноября 2009

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

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)
4 голосов
/ 30 ноября 2009

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

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)
1 голос
/ 25 марта 2015

Подмножество вне функции 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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...