Domanda

Sto cercando di usare ggplot2 per creare ed etichettare un diagramma a dispersione. Le variabili che sto tracciando sono entrambe ridimensionate in modo tale che l'asse orizzontale e quello verticale siano tracciati in unità di deviazione standard (1,2,3,4, ... ect dalla media). Quello che vorrei poter fare è etichettare SOLO quegli elementi che superano un certo limite di deviazioni standard dalla media. Idealmente, questa etichettatura si baserebbe su un'altra colonna di dati.

C'è un modo per farlo?

Ho consultato il manuale online, ma non sono riuscito a trovare nulla sulla definizione di etichette per i dati tracciati.

L'aiuto è apprezzato!

Grazie!

BEB

È stato utile?

Soluzione

Usa subsetting:

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)

Altri suggerimenti

L'etichettatura può essere eseguita nel modo seguente:

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)

Sottomissione al di fuori della funzione 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) 

Uso di qplot:

qplot(a, b, data = x, label = lab, geom = c('point','text'))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top