All Articles

R로 원그래프와 막대그래프 그리기

연습문제

다음은 1992년에 실시한 대통령 선거 결과를 엑셀에 입력한 자료다. 각 후보 득표율을 그래프로 비교하고자 한다. R을 이용하여 원그래프와 막대그래프를 그려보시오.

대통령 후보 득표율 자료

막대그래프 그리기

일단 안 배운 부분이므로… 구글링을 해봤다. csv 파일을 불러와서 해보려고 했는데 1열 후보열을 x축으로, 2열 득표율을 y축으로 설정하지를 못해서 실패. 이리저리 해봐도 안돼서 어차피 데이터 수 적으니까…ㅎㅎ 그냥 변수에 때려넣는 방법으로 해봤다.

> x <- c("김영삼", "김대중", "정주영", "박찬종", "기타")
> y <- c(42.0, 33.8, 16.3, 6.4, 1.5)
> barplot(y, main="대통령 후보 득표율", names.arg=x)

결과물

충분히 아름답지만 막대마다 다른 색을 넣어서 구분하기 쉽게 만들어보았다.

> colors <- c("#4285F4", "#DB4437", "#F4B400", "#0F9D58", "#EA8600")
> barplot(y, main="대통령 후보 득표율", names.arg=x, col=colors)

막대 색깔 넣기

구글 메인 컬러를 사용해보았다. 깔끔하다. 그런데 막대가 y축 최댓값을 뚫고 나가는 것이 영 거슬린다. 흐린눈 하고싶었지만 그래도 저것까지 예쁘게 만들어보기로 했다.

> barplot(y, main="대통령 후보 득표율", names.arg=x, col=colors, ylim=c(0,50))

y축 최댓값 범위 지정하기

예쁘다.


원그래프 그리기

막대그래프와 함수 쓰는 법이 비슷해서 금방 만들었다. 막대그래프 x축에 해당하는 값이 여기서는 labels 값으로 들어간다.

> pie(y, main="대통령 후보 득표율", labels=x, col=colors)

원그래프

득표율도 표시해볼까?

> label <- paste(x, "\n", y, "%")
> pie(y, main="대통령 후보 득표율", labels=label, col=colors)

x는 후보자 이름, y는 득표율이다. 문자열 조합하듯 조합해주니 이렇게 잘 나온다.

득표율 포함한 원그래프

연습문제 완료!