development

막대 그래프에서 Y 축 수치를 백분율로 변경하려면 어떻게해야합니까?

big-blog 2020. 9. 17. 08:24
반응형

막대 그래프에서 Y 축 수치를 백분율로 변경하려면 어떻게해야합니까?


그림과 같이 y 축을 백분율로 어떻게 변경할 수 있습니까? y 축 범위를 변경할 수 있지만 백분율로 만들 수는 없습니다.여기에 이미지 설명 입력


사용하다:

+ scale_y_continuous(labels = scales::percent)

또는 백분율에 대한 형식화 매개 변수를 지정하려면 다음을 수행하십시오.

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

(이 명령 labels = percent은 ggplot2 버전 2.2.1 이후로 사용되지 않음)


원칙적으로 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).

참고 URL : https://stackoverflow.com/questions/27433798/how-can-i-change-the-y-axis-figures-into-percentages-in-a-barplot

반응형