검색을 조금 해본 후에도 여전히 행복하지 않습니다!ggplot2 y 축을 원점에서 시작하고 Y 축 상한을 부동 상태로 만듭니다.
원점에서 시작하여 모든 데이터를 명확하게 보여주는 Y 축을 가진 그래프를 만드는 간단한 방법이 있습니까?
set.seed(123)
my.data<- data.frame(x.var = rnorm(100, 50),
y.var = rnorm(100, 50,10))
## Annoying because it doesn't start at origin
ggplot(my.data, aes(x.var, y.var))+
geom_point()
## Annoying because origin is not at bottom
ggplot(my.data, aes(x.var, y.var))+
geom_point()+
expand_limits(y = 0)
## Annoying because point is cut off
ggplot(my.data, aes(x.var, y.var))+
geom_point()+
scale_y_continuous(expand = c(0,0))+
expand_limits(y = 0)
질문 "ggplot2에 0에서 시작 (R)를 원점을 강제로"
로 끝나는 가기 대답은 "당신은 일을 조금 조정해야 할 수도 있습니다 : 여기
내 문제입니다 포인트가 끊어지지 않도록하기 "왜 이런 일이 발생합니까? 수동으로 축을 조정할 수는 있지만 매번 그 작업을 수행하고 싶지 않습니다!
인터넷에서 어떤 녀석은 상대적으로 간단한 아이디어 무엇인지 내가 좋아하는 느낌을 위해 복잡하게 보인다
#Find the current ymax value for upper bound
#(via http://stackoverflow.com/questions/7705345/how-can-i-extract-plot-axes-ranges-for-a-ggplot2-object#comment24184444_8167461)
gy=ggplot_build(g)$panel$ranges[[1]]$y.range[2]
g=g+ylim(0,gy)
#Handle the overflow by expanding the x-axis
g=g+scale_x_continuous(expand=c(0.1,0))
를 포함하는 솔루션을 제공합니다. 내가 놓친 게 있니?
감사합니다.
또는 @의 joran의 ylimits를 사용하여이'ggplot (my.data, AES (x.var, y.var)) + geom_point() + coord_cartesian (ylim =에 c (사용 0, 1.05 * max (my.data $ y.var)))' – rawr
http://stackoverflow.com/q/11214012/892313이 질문에 대한 답변을 제공합니까, 아니면 정확히 y- 축의 하단이 필요합니까 0을 채우지 않고 (y 축의 상단에는 여전히 일반 여백이 있습니다)? –
@BrianDiggs 맨 아래에 일반 패딩이없고 패딩이 없기를 바랬습니다. 어쩌면 y = 0을 그래프의 아래쪽 가장자리로 가져 가려는 욕구가 재평가되어야합니다. 정보를 최상으로 표시하는 방법에 대한 질문 인 것 같습니다. – Michael