2012-08-22 2 views
4

내 행렬은 0과 100 사이의 값으로 구성되며 100 x 100 크기입니다. 기본적으로이 행렬을 플롯해야하지만, 빨간색과 아래 예 : 푸른.색상 임계 값과 격자가있는 R 행렬 플롯

http://learnr.wordpress.com/2009/07/15/ggplot2-version-of-figures-in-lattice-multivariate-data-visualization-with-r-part-5/

을 나는 그것을 달성 할 수있는 가장 쉬운 방법은 무엇 궁금 : 그 꼭대기에 나는 그들이 ggplot와 함께 여기처럼 멋진 grayisch 그리드를 추가 할? 나는 내가 지금까지 본 것에서 꽤 복잡해 보이기 때문에 ggplot을 시험해보고 싶지는 모르겠다. 그런 작업을위한 다른 쉬운 플롯 기능이 없습니까?

답변

4

데이터가 매트릭스에 있고 히트 맵 유형 플롯을 원한다면 100 % 확신 할 수 없습니다. 또는 그것이 다른 형태로되어 있고 링크 된 것과 같은 산점도를 원한다면. 방금 설명한대로 데이터가 있다고 가정하고 히트 맵을 원합니다.

x1$color=factor(x1$color>50) 
levels(x1$color)=c("lessthan50","more than 50") 
:

require(reshape2) 
require(ggplot2) 
x1=melt(x) 
names(x1)=c("x","y","color") 

은 그럼 요인으로 내 차단을 만들 것입니다 : XY는 좌표 것 같습니다 있도록

x=abs(rnorm(100*100,50,25)) 
    x=matrix(x,nrow=100) 

그래서 내가 데이터를 바꿀 것이다 : 나는 뭔가처럼 상상

다음과 같이 ggplot을 호출합니다.

qplot(x, y, fill=color, data=x1,geom='tile') 
기본 그래픽에서

enter image description here

+0

사랑 나누기 우수 . 그게 지금 내가 원하는 것을 찾는다! 나는 방금 지난 30 분 동안 보았던 것에서부터 당신이 정말로 시원하고 멋진보고있는 그림을 만들 수 있기 때문에 ggplot2를 들여다보기 시작했습니다! :) 고마워. 잘 했어! – user969113

5

는 단지입니다 :

image(x, col=c("red","blue")[1+(x>50)]) 

그리드 사용 추가하려면 :

grid(nx=100, ny=100, lty=1) 
+0

좋은 방법! 감사. 그러나, 나는 ggplot2 패키지의 스타일을 선호합니다 :-) 꽤 놀랍습니다. 그렇지 않습니까? :) – user969113

0

당신은 levelplot로 간단하게 충분히 할 수 있습니다를,

x <- abs(runif(100*100,0, 100)) 
x <- matrix(x,nrow=100) 
levelplot(x, cuts=1, col.regions=c("red", "blue"))