programing

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

stoneblock 2023. 6. 23. 21:43

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

어떻게 y축을 수치처럼 퍼센트로 바꿀 수 있습니까?y축 범위를 변경할 수는 있지만 퍼센트로 변경할 수는 없습니다. enter image description here

사용:

+ scale_y_continuous(labels = scales::percent)

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

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

(명령)labels = percentggplot2)의 버전 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인 gg 그림을 사용했습니다.저는 그녀의 예를 다음과 같이 사용했습니다.

scale_y_continuous(labels = function(x) paste0(round(x/140*100,1), "%"), breaks = seq(0, 140, 35))

이를 통해 140분모에 대한 제 백분율을 얻을 수 있었고, 기본값인 이상한 숫자가 아닌 25%씩 눈금을 깰 수 있었습니다.여기서 중요한 것은 척도 구분이 사용자의 백분율이 아니라 원래 카운트에 의해 여전히 설정된다는 것입니다.따라서 구분 기호는 0부터 분모 값까지여야 하며, "숫자"의 세 번째 인수는 분모를 원하는 레이블 구분 기호(예: 140 * 0.25 = 35)로 나눈 값이어야 합니다.

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