답변:
사용하다:
+ scale_y_continuous(labels = scales::percent)
또는 백분율에 대한 형식화 매개 변수를 지정하려면 다음을 수행하십시오.
+ scale_y_continuous(labels = scales::percent_format(accuracy = 1))
(이 명령 labels = percent
은 ggplot2 버전 2.2.1 이후로 사용되지 않음)
scales::percent(accuracy = 1)
작동하지 않는 이유 는 *_format()
버전이 대신에 함수를 생성 하기 때문 percent()
입니다.
원칙적으로 모든 재 포맷 기능을 labels
매개 변수에 .
+ scale_y_continuous(labels = function(x) paste0(x*100, "%")) # Multiply by 100 & add %
또는
+ scale_y_continuous(labels = function(x) paste0(x, "%")) # Add percent sign
재현 가능한 예 :
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
그리고 scales
패키지는이 작업을 수행 할 수 있습니다
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)
stat()
옵션이 해제되어 오류 메시지가 표시되는 것 같습니다 . 이 시도:
library(scales)
myplot <- ggplot(mtcars, aes(factor(cyl))) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels=percent)
myplot
위의 @Deena에서 가져온 레이블의 함수 수정은 생각했던 것보다 더 다양합니다. 예를 들어, 계수 된 변수의 분모가 140 인 ggplot이 있습니다. 다음과 같이 그녀의 예를 사용했습니다.
scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))
이를 통해 140 분모에 대한 백분율을 얻은 다음 기본적으로 설정된 이상한 숫자가 아닌 25 % 단위로 척도를 깰 수있었습니다. 여기서 핵심은 스케일 브레이크가 여전히 백분율이 아닌 원래 카운트로 설정된다는 것입니다. 따라서 구분은 0에서 분모 값까지 여야하며 "breaks"의 세 번째 인수는 분모를 원하는 레이블 구분 수로 나눈 값입니다 (예 : 140 * 0.25 = 35).
library(scales)
.