¿Cómo podemos cambiar el eje y a por ciento, como el de la figura? Puedo cambiar el eje y, pero no puedo ir a por ciento.
¿Cómo puedo cambiar el eje de las cifras en porcentajes en un barplot?

InformationsquelleAutor | 2014-12-11

4 Comentarios

  1. 160

    Uso:

    + scale_y_continuous(labels = scales::percent)

    O, para especificar los parámetros de formato para el por ciento:

    + scale_y_continuous(labels = scales::percent_format(accuracy = 1))

    (el comando labels = percent es obsoleto desde la versión 2.2.1 de ggplot2)

    • Me gustó que usted no tiene que escribir library(scales) para esto.
    • Y la razón por la scales::percent(accuracy = 1) no funciona es porque el *_format() versiones de crear una función en lugar de…lo que sea que percent() solo crea, es eso correcto?
  2. 40

    En principio, puede pasar cualquier formatear función a la labels parámetro:

    + scale_y_continuous(labels = function(x) paste0(x*100, "%")) # Multiply by 100 & add %  

    O

    + scale_y_continuous(labels = function(x) paste0(x, "%")) # Add percent sign 

    Reproducible ejemplo:

    library(ggplot2)
    df = data.frame(x=seq(0,1,0.1), y=seq(0,1,0.1))
    
    ggplot(df, aes(x,y)) + 
      geom_point() +
      scale_y_continuous(labels = function(x) paste0(x*100, "%"))
    • +1 para ninguna dependencia externa. Yo sé que desde Hadley es el autor de ambos ggplot2 y escalas, no importa—pero esta solución es apreciada.
  3. 39

    ggplot2 y scales paquetes puede hacer que:

    y <- c(12, 20)/100
    x <- c(1, 2)
    
    library(ggplot2)
    library(scales)
    myplot <- qplot(as.factor(x), y, geom="bar")
    myplot + scale_y_continuous(labels=percent)

    Parece que el stat() la opción que se ha tomado, causando que el mensaje de error. Intente esto:

    library(scales)
    
    myplot <- ggplot(mtcars, aes(factor(cyl))) + 
              geom_bar(aes(y = (..count..)/sum(..count..))) + 
              scale_y_continuous(labels=percent)
    
    myplot
  4. 0

    Tomado de @Deena anteriormente, que la función de la modificación de las etiquetas es más versátil de lo que se podría haber pensado. Por ejemplo, yo tenía un ggplot donde el denominador de contado variables fue de 140. He utilizado su ejemplo así:

    scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))

    Esto me permitió obtener mi porcentajes en el 140 denominador, y luego romper la escala en incrementos del 25% en lugar de la extraña número predeterminado. La clave aquí es que la escala de los descansos están todavía establecidos por el conteo original, no por sus porcentajes. Por lo tanto, los descansos deben ser de cero al denominador de valor, con el tercer argumento en «saltos» de ser el denominador dividido por sin embargo muchas etiquetas de los descansos que desee (por ejemplo, 140 * 0.25 = 35).

Dejar respuesta

Please enter your comment!
Please enter your name here