2010-11-16 843 views

Respuesta

14

Puede usar el locator() dentro de text() por el método de clic &.

y <- rnorm(100, 10) 
y2 <- rnorm(100, 20) 
x <- 1:100 

plot(x, y, type = "n", ylim = c(0, 40), xlim = c(0, 120)) 
lines(x, y) 
lines(x, y2, col = "red") 
text(locator(), labels = c("red line", "black line)")) 

alt text

0

observar la función labcurve en el paquete Hmisc.

9

En lugar de usar el localizador(), también podría simplemente hacer que las coordenadas de las etiquetas sean una función de sus datos. Por ejemplo, a cuestas de demostración de Roman:

text(x=rep(max(x)+3, 2), y=c(mean(y), mean(y2)), pos=4, labels=c('black line', 'red line')) 
3

Para utilizar directlabels, debe estructurar los datos en un hoja.de.datos y luego usar un sistema de trazado de alto nivel como ggplot2, o en el siguiente ejemplo, enrejado:

y <- rnorm(100, 10) 
y2 <- rnorm(100, 20) 
x <- 1:100 
treatment <- rep(c("one group","another"),each=length(x)) 
df <- data.frame(x=c(x,x),y=c(y,y2),treatment) 
library(lattice) 
p <- xyplot(y~x,df,groups=treatment,type="l") 
if(!require(directlabels)){ 
    install.packages("directlabels") 
    library(directlabels) 
} 
print(direct.label(p)) 
print(direct.label(update(p,xlim=c(0,120)),last.points)) 
3

locator() es un método interactivo de obtener las coordenadas haciendo clic en un gráfico existente.

Aquí hay instrucciones sobre cómo usar locator() para encontrar las coordenadas correctas para una etiqueta en un gráfico.

Paso 1: Trazar la curva:

plot(1:100) 

Paso 2: Escriba lo siguiente en la consola:

coords <- locator() 

Paso 3: Haga clic una vez sobre el terreno, luego haga clic en Stop .. Stop Locator en la esquina superior izquierda de la gráfica (esto devuelve el control a la consola R).

Paso 4: Encuentra las coordenadas devueltos:

coords 
$x 
[1] 30.26407 
$y 
[1] 81.66773 

Paso 5: Ahora, se puede agregar una etiqueta a la trama existente utilizando estas coordenadas:

text(x=30.26407, y=81.66773,label="This label appears where I clicked") 

o

text(x=coords$x, y=coords$y,label="This label appears where I clicked") 

Este es el resultado:

enter image description here

Se dará cuenta de que la etiqueta aparece con su centro en el que ha hecho clic. Es mejor si la etiqueta aparece con su primer caracter donde hizo clic. Para encontrar el parámetro correcto, consulte la ayuda de text, y añadir el parámetro pos=4:

text(x=30,y=80,pos=4,label = "hello") 

Notas:

  • La etiqueta aparece en la misma coordenadas x, y como puntos en el gráfico. Así, x = 100, y = 0 habría aparecerá en la parte inferior derecha , mientras x = 0, y = 100 aparecería en la superior izquierda.
  • También se puede usar legend() para trazar una etiqueta (esto dibuja una caja alrededor de la etiqueta que a menudo se ve mejor).
  • Consulte How to change font family in a legend in an R-plot? para saber cómo cambiar la fuente en una leyenda y cómo colocar automáticamente la leyenda en la parte superior derecha del gráfico.
  • Recomendaría familiarizarme con ggplot2 en lugar de trazar, ya que ggplot2 es el estándar de oro para producir gráficos.
Cuestiones relacionadas