¿Cómo hago una parcela en R de modo que el valor de una variable de la muestra a lo largo del eje X y la variable de nombres de ir verticalmente a lo largo del eje Y? En última instancia, la trama debe buscar vertical con los nombres de variable en el eje Y y sus valores en el eje X.

El código de abajo se ostensiblemente hacerlo, pero el problema es que la trama de los valores de no voltear con los ejes. Significado, la trama sigue las construcciones como si los nombres son a lo largo del eje X y los valores a lo largo del eje Y.

las variables a continuación:

valor = un vector columna de números

nombre = una columna de nombres que corresponden a cada número

plot(value, axes=F, xlab="", ylab= "", type= "b", xlim=c(-5, 50), ylim=c(0, 8))
axis(1)
axis(2, at = 1:length(name), labels = name, las=1, pos=-3.0,cex.axis=.65 )

gracias!

Confieso que me tienen absolutamente ninguna idea de lo que podría estar describiendo. Podría dar una imagen de lo que usted quiere que su salida parece?
Lo siento acerca de mi descripción. Aquí es mucho más complicado (yo sólo quiero que mi ejes para mirar esta manera): addictedtor.free.fr/graphiques/RGraphGallery.php?graph=114
En el enlace de arriba, observe cómo los nombres están en el eje y, y los valores son a lo largo del eje X. Eso es todo lo que me gustaría hacer — parcela de nombres y valores en X-y mi código de arriba que pone los nombres en el eje y, y los valores en el eje X (en la tercera línea de código), pero la real de puntos en el gráfico se representan como si los nombres son todavía lo largo del eje X y los valores en el eje Y. ¿Que sentido? Sólo quiero voltear el X y el eje y y tienen los datos flip con ella.

OriginalEl autor Captain Murphy | 2011-11-14

3 Comentarios

  1. 6

    Para facilitar la flexibilidad en este sentido, me gusta la representación de funciones en el lattice paquete:

     library(lattice)
    
     # First make some example data
     df <- data.frame(name=rep(c("a", "b", "c"), each=5), value=rnorm(15))
    
     # Then try plotting it in both 'orientations'
     # ... as a dotplot
     xyplot(value~name, data=df)
     xyplot(name~value, data=df)
    
     # ... or perhaps as a 'box-and-whisker' plot
     bwplot(value~name, data=df)
     bwplot(name~value, data=df)

    Si usted lo necesita, usted también puede parcela esta con base graphics, aunque usted tendrá que trabajar un poco en las etiquetas de los ejes:

    plot(x=df$value, y=df$name, yaxt="n",
         xlab="value", ylab="name")
    axis(2, at=1:3, labels=levels(df$name), las=1)
    Esto es genial, gracias! ¿Sabe usted de una manera de ordenar los datos de manera que los valores están disminuyendo o aumentando? Como el código sort(value, decreasing=F) pero por dentro de la parcela? el xyplot parece ordenar alfabéticamente por defecto. También, es posible hacer axes=F y añadir más tarde para que no se parece a un cuadro? Gracias de nuevo!
    Seguro. Usted querrá hacer name un factor, y establecer su levels con la mano (que por defecto para el orden alfabético). Para ver de qué estoy hablando, tratar de factor(df$name), a continuación, restablecer los niveles con df$name <- factor(df$name, levels=c("b", "a", "c")) y replot la figura. A continuación, mira ?factor, y, si parece confuso, sabrás que has conseguido la empresa por tener un vistazo a este post: stackoverflow.com/questions/7128413/…
    Para el ajuste de los niveles con la mano, significa que el orden de la configuración para que coincida con el orden creciente? Así que en tu ejemplo, b es el más pequeño, es el segundo más pequeño, y c es el más grande. La correcta?
    Nunca la mente. Tengo trabajo! Una última pregunta, entonces voy a dejar sola, cualquier manera de deshacerse de la caja alrededor de la gráfica y agregar los ejes manualmente como en mi post original? De esta manera, solo el y y el eje X se muestran.
    Eso es correcto, aunque me gustaría tienden a pensar de b como de «Nivel 1», como de «Nivel 2», y así sucesivamente. En este caso, lo que realmente estamos diciendo a la R el orden en el que queremos representar los niveles — no es que uno es ‘menor’ o ‘más grande’.

    OriginalEl autor Josh O’Brien

  2. 5

    Una vez que el uso de un «complot» de función de base, el usuario coordenadas son fijos. Es como escribir en tinta. No existe la posibilidad de que posteriormente voltear ellos con una llamada al eje. Que tipo de gimnasia requeriría una mayor orientación hacia el objeto, tales como la celosía o ggplot sistemas. Permiten la creación de un objeto que puede ser actualizado o modificado. Si usted tuvo un ggplot objeto se podría hacer algo como:

     p + coord_flip()
    Es bueno saber sobre el usuario coordenadas de ser corregido, gracias.
    +1 — no podía haber un mejor ejemplo de la elegancia de la ggplot modelo gráfico.

    OriginalEl autor 42-

  3. 3

    Usted acaba de conseguir dos decente sugerencias sobre el uso de otros trazado de las bibliotecas. Yo creo que su problema real es que sólo pase un vector de valores para plot que usted tiene la intención de ser utilizado como x valores. Pero cuando pasa un vector, plot se supone que hemos dado y valores. Acabo de hacer algo como:

    plot(x = value, y = 1:length(name),...)

    y usted debe conseguir lo que quieres.

    Sí, dado que no hay ejes que todo el cambio que se necesita. Esta es la más directa respuesta a la pregunta.
    Gracias, se lo agradezco. He intentado de esta manera y funciona, gracias! Por desgracia, el diseño parece un poco extraño dado mis datos, así que me voy con el entramado paquete xyplot. Pero estás en lo correcto-esto hace directamente la respuesta a mi pregunta y era lo que yo estaba tratando de averiguar por mi cuenta durante horas…
    No hay problema! lattice es, de hecho, muy bonito!

    OriginalEl autor joran

Dejar respuesta

Please enter your comment!
Please enter your name here