ggplot2를 사용하여 두 개의 분리 된 산점도를 만들었으므로 하나의 플롯으로 결합해야합니다. 각 플롯은 3 가지 다른 치료법 (배경)하에있는 도마뱀 개체군을위한 것입니다.두 개의 플롯을 하나로 합치고 각각을 별도의 범례로 R
csMS = data.frame()
ellMS = data.frame()
centroidsMS = data.frame()
csplotMS = ggplot(csMS, aes(x = RG, y = GB, colour = Background)) + geom_point(size = 3, shape = 17) + #colour by background, circles size 3
geom_path(data = ell.AS, aes(x = RG, y = GB ,colour = Background), size = 1, linetype = 2) + #adding the ellipses
geom_point(data = centroidsMS, size = 3, shape = 17) + #added centroids
geom_errorbar(data = centroidsMS, aes(ymin = GB - se.GB, ymax = GB + se.GB), width = 0) + #add y error bars
geom_errorbarh(data = centroidsMS, aes(xmin = RG - se.RG, xmax = RG + se.RG), height = 0) +
theme_bw() + #white background
theme(axis.title.y = element_text(vjust = 2), axis.title.x = element_text(vjust = -0.3)) + #distance of axis titles from axis
theme(panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), #no grids
axis.line = element_line(colour = "black")) + #black axes
theme(text = element_text(size = 30)) + #font size
ylab("(G-B)/(G+B)") + xlab("(R-G)/(R+G)") + # Set text for axes labels
scale_colour_manual(values = c("black","#FF6600", "yellow1")) + #changed default colours
labs(colour = "Murray Sunset NP") +
theme(legend.title = element_text(size = "20")) + #changes the legend title
theme(legend.text = element_text(size = "20")) + #changes the legend title
theme(legend.key = element_blank()) + #removed little squares around legend symbols
theme(legend.direction = "horizontal", legend.position = c(.5, .85))
내가
csASMS = csplotAS + csplotMS
을 시도하지만 오류 메시지가 얻을 : "P + O 오류 : 또한 이항 연산자에 숫자가 아닌 인수를 : 나는 다음이 각각의 플롯에 대한 경고 메시지 : 호환되지 않는 방법 ("+ .gg", "Ops.data.frame")에 대한 "+" "
는 또한
csASMS = grid.arrange(csplotAS, csplotMS)
,536,913,632 시도 10
하지만 이것은 하나의 그림을 다른 그림의 위에 놓는 것이지만 두 그림을 기본적으로 단 하나의 그림으로 만들 필요가 있지만 각 그림마다 서로 다른 도마뱀 개체 수를 나타내는 두 개의 별개 전설이 있습니다.
도움이 될 것입니다.
**** 편집 **** 년 12 월 2,014분의 12
내가 하나에 두 개의 플롯을 결합하는 관리 여전히 별도의 전설의 문제가있다. 문제를 단순화하기 위해 노력하고 cdeterman의 요청에 따라 좀 샘플 데이터로 코드의 간단한 양식을 추가 해요 :
:data frames: p1 and p2
> p1
treatment x y
1 Black 1 1
2 Orange 2 2
3 Yellow 3 3
> p2
treatment x y
1 Black 4 4
2 Orange 5 5
3 Yellow 6 6
나는 두 데이터 프레임을 포함하는 음모를 만들기 위해 다음 코드를 사용
plot = ggplot(p1, aes(x = x, y = y, colour = treatment)) + geom_point(size = 3) + #colour by background, circles size 3
theme_bw() + #white background
theme(axis.title.y = element_text(vjust = 2), axis.title.x = element_text(vjust = -0.3)) + #distance of axis titles from axis
theme(panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), #no grids
axis.line = element_line(colour = "black")) + #black axes
theme(text = element_text(size = 30)) + #font size
scale_colour_manual(values = c("black","#FF6600", "yellow1")) + #changed default colours
labs(colour = "p1") +
theme(legend.title = element_text(size = "20")) + #changes the legend title
theme(legend.text = element_text(size = "20")) + #changes the legend title
theme(legend.key = element_blank()) + #removed little squares around legend symbols
theme(legend.direction = "horizontal", legend.position = c(.33, 1)) +
# Now to add the second plot/ No need to code for axis titles, titles positions,etc b/c it's already coded in the first plot
geom_point(data = p2, aes(x = x, y = y, colour = treatment), size = 3, shape = 17)
이 기호는 서로 다른 기호 (p1의 경우 원, p2의 경우 삼각형)로 표시되지만 삼각형이 원 위에 겹쳐져있는 하나의 결합 된 범례 만있는 그래프를 생성합니다. 각 데이터 프레임 당 하나씩 2 개의 별도 범례를 얻으려면 어떻게해야합니까?
감사합니다.
일반적으로 데이터 세트를 'ggplot'과 결합하여 한 번 호출 할 수 있습니다. [이 질문 [http : //stackoverflow.com/questions/21192002/how-to-combine-2-plots-ggplot-into-one-plot) 답을 읽고 마음에 들지 않으면 질문을 업데이트하십시오. – cdeterman
안녕하세요, 저는 당신이 제안한 질문을 보았습니다. 그러나 그것은 기본적으로 제가 시도한 것과 동일한 해결책이었고 작동하지 않았습니다. 원래의 질문에서 설명한 오류 메시지를 반환했습니다. 또한이 방법이 효과가 있더라도 하나의 단일 범례를 제공하고 제 질문에서 설명한대로 두 개의 별도 전설이 필요합니다. – user3713629
몇 가지 대표적인 데이터를 제공 할 수있는 방법이 있습니까? – cdeterman