동일한 플롯에 y1과 y2를 플롯하고 싶습니다.
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
plot(x, y1, type = "l", col = "red")
plot(x, y2, type = "l", col = "green")
하지만 이렇게 하면 같은 플롯에 함께 그려지지 않습니다.
Matlab에서는 홀드 온
을 할 수 있지만 R에서이 작업을 수행하는 방법을 아는 사람이 있습니까?
다중 계층 플롯합니다 '패키지' 제프 로트 구성할 때 고려해야 합니다. 이 아이디어는 그래픽 객체를 생성할 수 있는 기본 미학 및 it 강화하십시오 증분식으로.
'스타일' 에서 '수' 다다드프라임 압축됨 제프 로트 데이터 필요합니다.
# Data generation
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x,1,1)
df <- data.frame(x,y1,y2)
기본 솔루션:
require(ggplot2)
ggplot(df, aes(x)) + # basic graphical object
geom_line(aes(y=y1), colour="red") + # first layer
geom_line(aes(y=y2), colour="green") # second layer
여기서 '+' 추가 레이어에는 연산자입니다 기본적인 객체에는 사용됩니다.
'와' 제프 로트 개체에 액세스할 수 있는 모든 단계에서 그래픽 플로팅에. 일반적인 단계별 설정 할 수 있는 다음과 같습니다.
g <- ggplot(df, aes(x))
g <- g + geom_line(aes(y=y1), colour="red")
g <- g + geom_line(aes(y=y2), colour="green")
g
'g', 그리고 플롯할 생산하는 모든 단계에서 이를 볼 수 있습니다 (뭐, 적어도 하나의 생성 후 레이어에는). 플롯의 더 인챈트 베지로프도 창조하 객체에는 함께 있다. 예를 들어, 레이블은 아사지스 추가할 수 있습니다.
g <- g + ylab("Y") + xlab("X")
g
최종 'g' 같습니다.
'철학' & # 39 의 주석에 지적한 대로, 제프 로트 사용하여 제안됩니다 data-in 긴 형식. 이 질문에 참조할 수 있습니다. https://stackoverflow.com/a/19039094/1796914 보기 위해서는 해당 코드.
'매프로트' 기능을 사용할 수 있습니다.
matplot(x, cbind(y1,y2),type="l",col=c("red","green"),lty=c(1,1))
이 경우 '와' y2 '이' x '동시에' y1 평가하실 점. 이 상황에 맞게 Y-axis 더 크게 확장할 수 있습니다 ('y1' 또는 'y2') 와 달리, 일부 다른 it gets "만약 여기에 대답을 클리핑할 될 'y2 보다도' y1 ' (제프 로트 솔루션뀉뀉뀉뀉 대부분 그땅은 대체하십시오 있다).
또한, 같은 x 좌표 아웃하기로 두 선이 없는 don& # 39 의 첫 번째 플롯할 및 추가 축으로만 제한값 설정합니다.
x1 <- seq(-2, 2, 0.05)
x2 <- seq(-3, 3, 0.05)
y1 <- pnorm(x1)
y2 <- pnorm(x2,1,1)
plot(x1,y1,ylim=range(c(y1,y2)),xlim=range(c(x1,x2)), type="l",col="red")
lines(x2,y2,col="green")
이 4 세, Q 는 '매프로트 언급한 것은 놀랄 키워봤지 아니예' 또는 'x / 이림'.
난 동의할 수 없음 '을 (를)' 파 (새 = TRUE) 가 두 번 인쇄 및 축으로만 눈금 때문에 축제. 예:
! 사인 및 포물선
출력을 the 음모 (보내거늘); 파 (새 = T). '. 플롯할 (함수 (x) x )
어떻게 보면 엉망 위로 수직 축 레이블은! 이후 다른 너회가 설정하는데 필요한 범위는 '이림 = c (최고 지점 사이의 사상 최저치를 두 가지 기능을 둘 사이의 함수)', 즉 I& 것보다 더 쉽게 쉽게 추가할 경우 way 너회들의 표시하십시오 # 39 m, 약 두 곡선이 아닌 적은 있지만, 많은.
어떤 날 '커브' 와 '라인' 플로팅하는 대한 차이는 항상 혼란스럽다. 입니다 경우 can& # 39, t 있다는 사실을 주지하십시오 그것은꿈의 이름을 두 가지 중요한 플로팅에 명령, 그냥 [직접] (http://www.tubechop.com/watch/5461987) it.)
'커브' 은 '커브 (보내거늘)' 등 기능에 플롯할. '라인' 플롯합니다 점, x 와 y 값이 다음과 같습니다. '선 (x, y = sin (10 0) = 10 0)'.
Behind the scenes 체크아웃합니다 서버리스 (그림) ','. [[5]] '확인' 본문 (플로지풍크션). 전화를 걸 때 '그림' R '은' 신 (sin) 플롯할 지적이 아닌 y 값) 와 함수 호출 '커브', '위로' 플로지풍크션 끝나는 방법을 사용합니다. 그래서 '커브' 는 뜻이 도구에서는 처리하십니까 총괄하였습니다.
두 줄을 따라 설명자 @redmode 플로팅할 같은 그래픽 장치 ',' 제프 로트 사용할 수 있습니다. # 39, & # 39 에 있는 데이터 오토메이티드 wide& 있었다. 형식. 그러나 '보통' 제프 로트 사용할 때 가장 편리한 & # 39 의 데이터 프레임을 유지하기 위해서는 data-in long& # 39;; 형식. # 39, & # 39 를 사용하여 다음 다른 그룹짓기 variables&. '선' 에 인수, 같은 속성을 aesl 심미적 러네이피 따라 달라질 수 있습니다, 또는 란색이며 그룹짓기 변수 및 .해당 레전드 나타납니다.
하지만, 많은 경우에 사용할 수 있는 '선의' 란색이며 아스트레틱스 란색이며 일치시킵니다 다른 수준의 변수로 데이터 집합 (위치: y1 및 y2). 그러나 먼저 해야 할 수 있는 다양한 기능을 사용하여 & # 39 의 데이터가 녹아내림, melt& # 39, 긴 형식 (예: reshape2 '에서' 패키지. 다른 방법으로 데이터 변형하려면 다음과 같습니다. [변형 에서 다다드프라임 긴 와이드 포맷] (https://stackoverflow.com/questions/2185252/reshaping-data-frame-from-wide-to-long-format).
library(ggplot2)
library(reshape2)
# original data in a 'wide' format
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
df <- data.frame(x, y1, y2)
# melt the data to a long format
df2 <- melt(data = df, id.vars = "x")
# plot, using the aesthetics argument 'colour'
ggplot(data = df2, aes(x = x, y = value, colour = variable)) + geom_line()
값을 저장할 수 있는 것도 아닌 플롯된 어레이이며 matrix. 기본적으로 전체 호환표에 취급함 하나의 데이터 세트를. 그러나 이 같은 수의 수정자는 플롯할 추가하면, 예를들면 열 () 는 행렬의 각 행, 행 할 때, R 그림 아웃해야 대우를 받아야 하는 용어이다. 예를 들면 다음과 같습니다.
x = matrix( c(21,50,80,41), nrow=2 )
y = matrix( c(1,2,1,2), nrow=2 )
plot(x, y, col("red","blue")
이 경우 다른 사용자의 데이터 세트는 노력해야 할 수 있습니다.
그플로레스트 () '기능을 사용할 수 있습니다' 에서 모든 패키지를 플로레스트 선반가공 gggplot2 사례를 여기서 salesforce. 상호대화식 플롯할 하지만 난 이런 종류의 플롯할 ggplot2 없이 좋다.
# call Plotly and enter username and key
library(plotly)
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
plot_ly(x = x) %>%
add_lines(y = y1, color = I("red"), name = "Red") %>%
add_lines(y = y2, color = I("green"), name = "Green")
성어는 (x1, y1, x2, y2) '' 플롯할 Matlab 에서 R 을 (를) '' 예를 들어 이런 식으로 ggplot2 번역할 수 있습니다.
x1 <- seq(1,10,.2)
df1 <- data.frame(x=x1,y=log(x1),type="Log")
x2 <- seq(1,10)
df2 <- data.frame(x=x2,y=cumsum(1/x2),type="Harmonic")
df <- rbind(df1,df2)
library(ggplot2)
ggplot(df)+geom_line(aes(x,y,colour=type))
제비스 사용하여 플롯할 만들 수도 있습니다.
library(ggvis)
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x,1,1)
df <- data.frame(x, y1, y2)
df %>%
ggvis(~x, ~y1, stroke := 'red') %>%
layer_paths() %>%
layer_paths(data = df, x = ~x, y = ~y2, stroke := 'blue')
이 다음 플롯할 만듭니다.
'플로레스트 사용하여' (추가 솔루션 '와' 플로레스트 운영 및 보조 y-축 - 누락된 것으로 보인다).
library(plotly)
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
df=cbind.data.frame(x,y1,y2)
plot_ly(df) %>%
add_trace(x=~x,y=~y1,name = 'Line 1',type = 'scatter',mode = 'lines+markers',connectgaps = TRUE) %>%
add_trace(x=~x,y=~y2,name = 'Line 2',type = 'scatter',mode = 'lines+markers',connectgaps = TRUE,yaxis = "y2") %>%
layout(title = 'Title',
xaxis = list(title = "X-axis title"),
yaxis2 = list(side = 'right', overlaying = "y", title = 'secondary y axis', showgrid = FALSE, zeroline = FALSE))
스크린샷 작동하지 데모:
우리가 할 수 있고, 또한 list. 라이브러리
library(lattice)
x <- seq(-2,2,0.05)
y1 <- pnorm(x)
y2 <- pnorm(x,1,1)
xyplot(y1 + y2 ~ x, ylab = "y1 and y2", type = "l", auto.key = list(points = FALSE,lines = TRUE))
특정 색계열
xyplot(y1 + y2 ~ x,ylab = "y1 and y2", type = "l", auto.key = list(points = F,lines = T), par.settings = list(superpose.line = list(col = c("red","green"))))