Risposte:
Uso:
+ scale_y_continuous(labels = scales::percent)
Oppure, per specificare i parametri di formattazione per la percentuale:
+ scale_y_continuous(labels = scales::percent_format(accuracy = 1))
(il comando labels = percent
è obsoleto dalla versione 2.2.1 di ggplot2)
scales::percent(accuracy = 1)
non funziona è perché le *_format()
versioni creano una funzione invece di ... qualunque cosa percent()
crei da sola, è corretto?
In linea di principio, puoi passare qualsiasi funzione di riformattazione al labels
parametro:
+ 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
Esempio riproducibile:
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, "%"))
ggplot2
e i scales
pacchetti possono farlo:
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)
Sembra che l' stat()
opzione sia stata rimossa, causando il messaggio di errore. Prova questo:
library(scales)
myplot <- ggplot(mtcars, aes(factor(cyl))) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels=percent)
myplot
Presa in prestito da @Deena sopra, la modifica della funzione per le etichette è più versatile di quanto si possa pensare. Ad esempio, avevo un ggplot in cui il denominatore delle variabili conteggiate era 140. Ho usato il suo esempio così:
scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))
Questo mi ha permesso di ottenere le mie percentuali sul denominatore 140, e quindi di rompere la scala con incrementi del 25% anziché i numeri strani su cui era predefinito. La chiave qui è che le interruzioni di scala sono ancora impostate dal conteggio originale, non dalle tue percentuali. Pertanto le interruzioni devono essere comprese tra zero e il valore del denominatore, con il terzo argomento in "interruzioni" che è il denominatore diviso per il numero di interruzioni di etichetta desiderate (ad es. 140 * 0,25 = 35).
library(scales)
per questo.