Jawaban:
Menggunakan:
+ scale_y_continuous(labels = scales::percent)
Atau, untuk menentukan parameter pemformatan untuk persen:
+ scale_y_continuous(labels = scales::percent_format(accuracy = 1))
(perintah labels = percent
sudah usang sejak versi 2.2.1 dari ggplot2)
scales::percent(accuracy = 1)
tidak berfungsi adalah karena *_format()
versi membuat fungsi alih-alih ... apa pun yang dibuat percent()
sendiri, apakah itu benar?
Pada prinsipnya, Anda dapat meneruskan fungsi pemformatan apa pun ke labels
parameter:
+ scale_y_continuous(labels = function(x) paste0(x*100, "%")) # Multiply by 100 & add %
Atau
+ scale_y_continuous(labels = function(x) paste0(x, "%")) # Add percent sign
Contoh yang dapat direproduksi:
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
dan scales
paket dapat melakukannya:
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)
Sepertinya stat()
opsi telah dilepas, menyebabkan pesan kesalahan. Coba ini:
library(scales)
myplot <- ggplot(mtcars, aes(factor(cyl))) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels=percent)
myplot
Dipinjam dari @Deena di atas, modifikasi fungsi untuk label lebih fleksibel dari yang Anda kira. Misalnya, saya memiliki ggplot di mana penyebut variabel yang dihitung adalah 140. Saya menggunakan contohnya sebagai berikut:
scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))
Ini memungkinkan saya untuk mendapatkan persentase saya pada penyebut 140, dan kemudian memecahkan skala dengan peningkatan 25% daripada angka aneh yang ditetapkan sebelumnya. Kuncinya di sini adalah pemutusan skala masih diatur oleh hitungan asli, bukan oleh persentase Anda. Oleh karena itu, pemutusan harus dari nol ke nilai penyebut, dengan argumen ketiga dalam "pemisah" menjadi penyebut dibagi dengan berapa pun pemutusan label yang Anda inginkan (misalnya 140 * 0,25 = 35).
library(scales)
untuk ini.