오류 막대가있는 선과 점 그래프를 만들려고합니다. 다른 요소가 있지만 일부 요소에는 하나의 값만 있습니다. position_dodge를 사용하면 단일 값 요소 중 하나에 그래프의 다른 오류 막대와 비교할 때 훨씬 넓은 오류 막대가 있음을 알았습니다. 어떻게 든 position_dodge는 오류 막대의 너비에 영향을 미칩니다. 전에도 같은 문제가있는 사람을 찾지 못했습니다. 그래서 누군가가 나를 도울 수 있기를 바랍니다.ggplot2 position_dodge가 오류 막대 너비에 영향을줍니다.
는더미 데이터 - position_dodge없이
require(ggplot2)
x <- c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,3,3,5)
y <- c(3,5,6,3,5,3,5,6,2,6,3,7,3,6,2,1,5,8,7)
se <- x*0.2
treatment <- c("A", "B","C", "D","A", "B","C", "D","A", "B","C", "D","A", "B","C", "D","E", "F", "G")
data <- data.frame(x, y, se ,treatment)
data$treatment <- as.factor(data$treatment)
우선 플롯 모든
# Without position dodge
myplot <- ggplot(data, aes(x=x, y=y, group= treatment, fill = treatment, colour = treatment)) +
geom_line(stat="identity", size = 1) +
geom_point(stat="identity", size = 3, shape = 21) +
geom_errorbar(aes(ymin = y-se, ymax = y+se), width = 0.2)
myplot
지금 위치와 플롯 피하 미세이다
# With position dodge
myplot <- ggplot(data, aes(x=x, y=y, group= treatment, fill = treatment, colour = treatment)) +
geom_line(stat="identity", size = 1, position=position_dodge(width=0.2)) +
geom_point(stat="identity", size = 3, shape = 21, position=position_dodge(width=0.2)) +
geom_errorbar(aes(ymin = y-se, ymax = y+se), width = 0.2, position=position_dodge(width=0.2))
myplot
오른쪽에서 보이는 바와 같이 오류 막대는 다른 오류 막대와 비교할 때 훨씬 더 큰 너비를 가지고 있습니다. 이것은 아마도이 점에 대해 겹치는 x 변수가없고 오류 막대가 정상 크기를 가질 수 있기 때문일 것입니다. 나는 여전히 같은 너비로 오류 막대를 가져올 수있는 방법을 알고 싶습니다.
아마 관련 문제 : https://github.com/tidyverse/ggplot2/issues/1068 두 번째 그래프를 보면 – zx8754
그래 아마, 포인트는 X = 3에서도 있습니다 작은 오차 막대. 오류 막대의 너비는 그룹 수에 의해 결정되기 때문일 수 있습니다. – Marinka
예, 공간은 점의 수로 공유되며 수평선은 더 짧아집니다. 해결책은 수동 피하를 도입하는 것입니다. 예를 들어 'x = 1'은 4 점, 'x = c (1, 1.02, 1.04, 1.06)'는 피할 수있는 옵션을 제거하십시오. – zx8754