2012-05-29 4 views
2

레이블 :예쁜 축 내가 너무 같은 간단한 막대 그래프를 그리려는

test <- data.frame(y=c(1,3,53,10,30,35,50), x=c(1:7)) 
barplot(test$y, names.arg=test$x) 

resulting graph

내 문제는 최대 값 인 경우 y 축이 충분히 확장되지 않는다는 것입니다 일부 "unpretty"번호. 축이 확장 된 값이 최대치를 넘고 최대 값보다 큰 "꽤"값으로 끝나면 더 좋을 것입니다.

임의의 데이터 집합 (즉, 함수에 포함)이 주어지면이를 수행하는 간단한 방법이 있습니까?

+0

나는 이것을 위해'ggplot'을 사용할 것입니다. 베이스 R에 솔루션이 필요합니까? ** 편집 ** -'ggplot'에서도 가장 쉬운 막대 위에 그리드 선을 그으므로 쉽게 읽을 수 없습니다. – Andrie

+0

실제로이 그래프를 시각화의 일부로 그리는 자체 함수에 통합 할 때부터베이스 R에 솔루션이 필요합니다. – MattLBeck

답변

6

당신은 자동으로 ylim에 대한 더 좋은 설정을 선택하는 pretty()range()의 조합을 사용할 수 있습니다

test <- data.frame(y=c(1,3,53,10,30,35,50), x=c(1:7)) 
barplot(test$y, names.arg=test$x, 
     ylim = range(pretty(c(0, test$y)))) 

enter image description here

(감사합니다 개빈 심슨 지적에 대해 그 range(pretty(c(0, test$y))) 작품을 단지뿐만 아니라 range(pretty(c(0, max(test$y))) 등)

+0

+1 좋은 답변입니다. – Andrie

+0

그것은 아름답습니다! 이제 같은 그래프를 그린다. 출력 장치로'x11 (width = 5, height = 2.2) '를 사용한다. 라벨이 "50"이고 라벨이 "60"이 아닌 이유는 무엇입니까? – MattLBeck

+1

이 경우,'pretty (test $ y)'이면 충분합니다.'max()'를 호출 할 필요가 없습니다. –

관련 문제