ggplot2, 히스토그램을 이동하는 방법?

Jan 15 2021

저는 R을 배우려고 노력하고 있으며 "Hands-On Programming with R"이라는 책을 통해 시작했습니다. 나는 문제가 발생했고 그것이 나를 많이 괴롭히기 때문에 계속할 수 없다. 연습으로 ggplot2 패키지를 실험하고 히스토그램을 만들어야합니다. 사용되는 코드는 다음과 같습니다.

x <- c(1, 2, 2, 2, 3, 3)

qplot(x, binwidth = 1)

히스토그램은 그림 1과 같아야합니다. 그러나 코드를 실행할 때 내 히스토그램은 그림의 히스토그램과 같지 않고 (그래야하지만) 그림 2와 비슷하게 보입니다. 기본적으로 동일하지만 있어야 할 위치의 왼쪽에 소수점 0.5 자리가 있습니다.

히스토그램이 그림 1과 동일하게 보이지 않는 이유와 코드를 수정하는 방법을 알려주시겠습니까?

그림 1 : https://i.stack.imgur.com/dssBQ.jpg 사진 2 : https://i.stack.imgur.com/wUk1i.jpg

답변

2 Peter Jan 15 2021 at 23:25

R 버전 4.0.3에서 ggplot2_3.3.2를 사용하고 있습니다.

나는 당신이하는 것과 같은 그래프를 얻는다. https://rstudio-education.github.io/hopr/packages.html#packages-1.

이 책에서 어떤 버전의 ggplot이 사용되었는지 알 수 없었습니다. 아마도 일부 텍스트를 기반으로 2014 년경이었을 것입니다. @the_one_neuron의 코멘트를 염두에두고 나는 이것이 책이 쓰여진 이후 ggplot2의 변경 사항과 관련이 있다고 생각합니다.

문제는 비닝 (binning) 또는 그 이상 '게이트 및 포스트'입니다. 값 1을 0과 1 (0.5 중심)이 아닌 1과 <2 (1.5 중심) 사이에서 비닝하려고합니다.

@ r2evans에서 모든 값이> 0인데도 geom_histogram이 음의 bin 하한에서 시작하는 이유는 무엇입니까? .

어쨌든 여기 예상 그래프와 유사한 결과를 얻으려는 퍼지가 있습니다.


library(ggplot2)

x <- c(1, 2, 2, 2, 3, 3)

qplot(x, binwidth = 1, breaks = 1:4 - 0.000001, xlim = c(0, 4))

reprex 패키지 (v0.3.0)로 2021-01-15에 생성

the_one_neuron Jan 15 2021 at 21:53

이런 식으로 시도해 볼 수 있습니다. 완벽하지는 않지만 매우 가깝습니다.

qplot(x, binwidth = 1, xlim =c(0,NA), ylab = "count")