반응형
서로 다른 데이터 프레임의 두 플롯을 결합하는 ggplot
두 개의 다른 data.frame에서 두 개의 ggplot을 하나의 플롯으로 결합하고 싶습니다. 아래에서 코드를 찾을 수 있습니다. 플롯 1 & 2 또는 플롯 3 & 4를 결합하고 싶습니다.
df1 <- data.frame(p=c(10,8,7,3,2,6,7,8),
v=c(100,300,150,400,450,250,150,400))
df2 <- data.frame(p=c(10,8,6,4), v=c(150,250,350,400))
plot1 <- qplot(df1$v, df1$p)
plot2 <- qplot(df2$v, df2$p, geom="step")
plot3 <- ggplot(df1, aes(v, p)) + geom_point()
plot4 <- ggplot(df2, aes(v, p)) + geom_step()
이 작업은 매우 쉬울 것 같지만 어떻게 든 작동시킬 수 없습니다. 시간 내 줘서 고마워.
Baptiste가 말했듯이 Geom 수준에서 데이터 인수를 지정해야합니다. 어느 한 쪽
#df1 is the default dataset for all geoms
(plot1 <- ggplot(df1, aes(v, p)) +
geom_point() +
geom_step(data = df2)
)
또는
#No default; data explicitly specified for each geom
(plot2 <- ggplot(NULL, aes(v, p)) +
geom_point(data = df1) +
geom_step(data = df2)
)
저에게 유일한 해결책은 기본 개체 인 ggplot 대신 geom_line에 데이터 개체를 정의하는 것이 었습니다.
이렇게 :
ggplot() +
geom_line(data=Data1, aes(x=A, y=B), color='green') +
geom_line(data=Data2, aes(x=C, y=D), color='red')
대신에
ggplot(data=Data1, aes(x=A, y=B), color='green') +
geom_line() +
geom_line(data=Data2, aes(x=C, y=D), color='red')
이 트릭을 사용하여 qplot 만 사용할 수 있습니다. 내부 변수를 사용하십시오 $mapping
. colour =를 플롯에 추가하여 매핑에도 적용한 다음 플롯을 범례 및 색상과 자동으로 결합 할 수 있습니다.
cpu_metric2 <- qplot(y=Y2,x=X1)
cpu_metric1 <- qplot(y=Y1,
x=X1,
xlab="Time", ylab="%")
combined_cpu_plot <- cpu_metric1 +
geom_line() +
geom_point(mapping=cpu_metric2$mapping)+
geom_line(mapping=cpu_metric2$mapping)
참고 URL : https://stackoverflow.com/questions/9109156/ggplot-combining-two-plots-from-different-data-frames
반응형
'Nice programing' 카테고리의 다른 글
블러 이벤트를 수동으로 추적하지 않고 Backbone.js의 모델에 양식 입력을 바인딩 할 수 있습니까? (0) | 2020.11.27 |
---|---|
결과가 하나만있을 경우 목록 이해의 대안 (0) | 2020.11.27 |
jQuery는 postmessage 이벤트를 지원하지 않습니까? (0) | 2020.11.27 |
양식에 저장되지 않은 변경 사항에 대한 경고 (0) | 2020.11.27 |
C # 스위치와 함께 열거 형을 사용하는 방법 (0) | 2020.11.27 |