2009-11-29 14 views
11

Ich versuche mit ggplot2 ein Streudiagramm zu erstellen und zu beschriften. Die Variablen, die ich zeichne, sind beide so skaliert, dass die horizontale und die vertikale Achse in Einheiten der Standardabweichung (1,2,3,4, ... ect vom Mittelwert) aufgetragen sind. Was ich gerne tun könnte, ist, NUR jene Elemente zu beschriften, die jenseits einer bestimmten Grenze von Standardabweichungen vom Mittelwert liegen. Idealerweise würde diese Kennzeichnung auf einer anderen Datenspalte basieren.ggplot2 Scatter Plot Etiketten

Gibt es eine Möglichkeit, dies zu tun?

Ich habe das Online-Handbuch durchgesehen, aber ich konnte nichts über das Definieren von Beschriftungen für geplottete Daten finden.

Hilfe ist willkommen!

Danke!

BEB

Antwort

15

Verwendung 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) 
4

Die Markierung kann auf folgende Weise erfolgen:

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

Subsetting außerhalb der ggplot Funktion:

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) 

Mit q Grundstück:

qplot(a, b, data = x, label = lab, geom = c('point','text'))