Câu trả lời:
Sử dụng:
+ scale_y_continuous(labels = scales::percent)
Hoặc, để chỉ định các tham số định dạng cho phần trăm:
+ scale_y_continuous(labels = scales::percent_format(accuracy = 1))
(lệnh labels = percent
đã lỗi thời kể từ phiên bản 2.2.1 của ggplot2)
scales::percent(accuracy = 1)
không hoạt động là vì các *_format()
phiên bản tạo ra một chức năng thay vì ... bất cứ thứ gì percent()
một mình tạo ra, điều đó có chính xác không?
Về nguyên tắc, bạn có thể chuyển bất kỳ hàm định dạng nào cho labels
tham số:
+ scale_y_continuous(labels = function(x) paste0(x*100, "%")) # Multiply by 100 & add %
Hoặc là
+ scale_y_continuous(labels = function(x) paste0(x, "%")) # Add percent sign
Ví dụ có thể lặp lại:
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
và scales
các gói có thể làm điều đó:
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)
Có vẻ như stat()
tùy chọn đã bị tắt, gây ra thông báo lỗi. Thử cái này:
library(scales)
myplot <- ggplot(mtcars, aes(factor(cyl))) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels=percent)
myplot
Được mượn từ @Deena ở trên, việc sửa đổi chức năng cho nhãn linh hoạt hơn bạn có thể nghĩ. Ví dụ: tôi có một ggplot trong đó mẫu số của các biến đếm là 140. Do đó, tôi đã sử dụng ví dụ của cô ấy:
scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))
Điều này cho phép tôi lấy tỷ lệ phần trăm của mình trên mẫu số 140, và sau đó phá vỡ tỷ lệ ở mức tăng 25% thay vì những con số kỳ lạ mà nó mặc định. Chìa khóa ở đây là các khoảng ngắt tỷ lệ vẫn được đặt theo số ban đầu, không phải theo phần trăm của bạn. Do đó, các dấu ngắt phải từ 0 đến giá trị mẫu số, với đối số thứ ba trong "dấu ngắt" là mẫu số chia cho bao nhiêu dấu ngắt nhãn mà bạn muốn (ví dụ: 140 * 0,25 = 35).
library(scales)
cho điều này.