2015-01-19 4 views
1

enter image description here 10x10 행렬을 가지고 있으며 다음과 같은 방법으로 각 열을 줄의 형태로 그려야합니다.
1. 하나의 y- 축은 행렬의 모든 열의 크기를 나타냅니다.
2. 10 포인트 (= 열 수)의 단일 x 축이 있어야합니다.
3. 행렬의 첫 번째 열은 x 축의 점 1과 점 2, 점 2와 점 3의 행렬의 두 번째 열, 점 3의 세 번째 열과 점 3의 행에 그려야합니다. 4 등등 ...
나는 이미 게시물을 보았지만, 모두 내 요구 사항에 맞지 않는 여러 플롯입니다. 당신이이 R에서 수행 할 수있는 방법 좀 도와 주 시겠어요행렬의 각 열을 하나의 그래프에 하나의 그래프로 개별적으로 표시 R

+0

체크 아웃'? matplot()'나는 내가 원하는 그래프의 유형을 추가 해명 (페인트에서 그린) 예를 추가 한 위의 설명 – Jthorpe

+0

... 난 그냥 6 열을 추가 ...하지만 실제 .. 나는 비슷한 형태로 10을 필요로 – user3275911

답변

3

당신은 적절하게 그룹 데이터와 위치 그것을에 ggplot 같은 유틸리티를 세우고 표준을 사용하여 다음 긴 형식으로 다양한에서 데이터를 변환 할 수 있습니다 :

# Build a sample matrix, dat 
set.seed(144) 
dat <- matrix(rnorm(100), nrow=10) 

# Build a data frame, to.plot, where each element represents one value in the matrix 
to.plot <- expand.grid(row=factor(seq(nrow(dat))), col=factor(seq(ncol(dat)))) 
to.plot$dat <- dat[cbind(to.plot$row, to.plot$col)] 
to.plot$col <- as.factor(to.plot$col) 

# Plot 
library(ggplot2) 
ggplot(to.plot, aes(x=as.numeric(col)+(row-1)/max(row), y=dat, group=col, col=col)) 
+ geom_line() + scale_x_continuous(breaks=1:10) + xlab("Column") 

enter image description here

+0

에 matplot() 이행 할 점 3 플롯 할 수 있습니다 어떻게 – user3275911

+0

그게 ... ggplot2를 사용하지 않고 코드를 만들 수 있습니다 ... 후자는 두 또는 같은 열을 플롯해야 할 수도 있습니다 하나의 줄거리에서 더 많은 행렬 ... 두 행렬의 col1 예제 ... 색상 및 스타일 조정 ... ggplot을 사용하지 않고 유사한 그래프를 행()으로 만들 수 있다고 들었습니다. – user3275911

2

다음은 matplot을 사용하는 방법입니다.

matplot(y = myData, 
     ,x = matrix(seq(prod(dim(myData)))/nrow(myData), 
        nrow=nrow(myData),byrow=F) 
      - 1/nrow(myData) + 1) 

트릭은 x 값에 대한 오른쪽 행렬을 구성합니다.

관련 문제