Me funcionan a menudo en un tema donde tengo un marco de datos que tiene una sola variable x, una o más facetas de las variables, y varias otras variables. A veces me gustaría simultáneamente trazar diferentes y variables como líneas separadas. Pero siempre es sólo un subconjunto quiero. He intentado usar funden para obtener «variable» como una columna y utilizar, y funciona si quiero cada columna que estaba en el conjunto de datos original. Por lo general, no.

Ahora he estado haciendo las cosas realmente rotonda que se siente. Supongamos que con mtcars quiero parcela disp, hp, y wt contra mpg:

ggplot(mtcars, aes(x=mpg)) + 
  geom_line(aes(y=disp, color="disp")) + 
  geom_line(aes(y=hp, color="hp")) + 
  geom_line(aes(y=wt, color="wt"))

Esto se siente realmente redundante. Si soy la primera derretir mtcars, a continuación, todas las variables se derrita, y luego me va a acabar trazando otras variables que no quiero.

¿Alguien tiene una buena manera de hacer esto?

InformationsquelleAutor Chris Neff | 2011-09-27

1 Comentario

  1. 13

    ggplot siempre prefiere largo formato dataframe, así melt es:

    mtcars.long <- melt(mtcars, id = "mpg", measure = c("disp", "hp", "wt"))
    ggplot(mtcars.long, aes(mpg, value, colour = variable)) + geom_line()
    • De manera que la medida es parte de la cosa de la que me estaba ignorando. Supongo que este es el camino correcto, sólo un poco molesto cuando están explorando de forma interactiva.
    • alternativamente, derretir el conjunto de los datos.marco como usted sugiere y, a continuación, utilizar subset() como el argumento de datos en el ggplot() llamar si usted planea en la tramando cosas diferentes y no desea volver a melt
    • IDK lo que en 2011 la situación era, pero en 2018 con R 3.6.1. usted tiene que importar el paquete library(reshape2) el uso de la melt función.

Dejar respuesta

Please enter your comment!
Please enter your name here