갈루아의 반서재

728x90

<시작하기 전에>

 

※ 본 예제에 사용하는 diamonds dataset 는 ggplot2 패키지에 포함되어 있다. 

※ ggplot2 패키지의 설치는 다음과 같이 한다.

  

> install.package('ggplot2')

 

위 데이터는 정제되지 않은 데이터이므로 아래와 같이 랜덤으로 100개의 샘플을 뽑아낸 dsmall 이라는 dataset 를 이용해서 얘기를 전개해나가고자 한다. 

 

> library("ggplot2", lib.loc="~/R/win-library/3.1")

> set.set(1410)

Error: could not find function "set.set"

 dsmall <- diamonds[sample(nrow(diamonds),100),]

 

아래 이미지와 같이 dsmall 이라는 새로운 dataset 가 생긴 것을 확인할 수 있다. 

 

 

 

 


 


<기본사용법>

1. diamons 데이터셋트에서 carat 과 price 의 관계를 나타내는 산포도를 작성해준다. 

> qplot(carat, price, data = diamonds)
 
 

 

2. qplot() 은 아래와 같이 변수의 함수를 인수로 가질 수 있음

> qplot(log(carat),log(price),data=diamonds)

 

3. 변수들의 결합을 인수로 삼을 수도 있다. 
예를 들어 다이아몬드의 부피와 중량의 관계가 궁금하다면 아래와 같이 하면 된다.

> qplot(carat, x * y * z, data = diamonds)

 

 

4. 색상, 크기, 모양 등의 속성
plot 이 특정 데이터에 특정 속성을 부여하는 것이 사용자의 몫이라면 qplot 에서는 이를 자동으로 처리해준다.

>qplot(carat, price, data = dsmall, colour = color)


>qplot(carat, price, data = dsmall, shape = cut)

 



5. I() 를 이용한 속성 부여
예를 들면, colour = I("red") 또는 size = I(2) 와 같이 I()를 이용하여 속성을 부여할 수 있다.
그리고 다이아몬드 데이터와 같이 큰 규모의 data sets 의 경우에는 반투명의 점 등도 유용하다. 
반투명의 색상을 사용하기 위해서는 alpha() 를 이용한다. 
alpha(colour, transparency) 와 같으며 여기서 colour 는 R 의 색상을 입력하고, transparency 값에는 0 에서 1 사이의 값을 입력한다. 
완전투명한 것이 0 (completely transparent) 완전히 불투명한 것이 1 (complete opaque) 이다.
1/10 또는 1/20 과 같이 분수를 이용하는 것도 유용하다.

> qplot(carat, price, data = diamonds, colour = I(alpha("black", 1/10)))
> qplot(carat, price, data = diamonds, colour = I(alpha("black", 1/100)))
> qplot(carat, price, data = diamonds, colour = I(alpha("black", 1/200)))
> qplot(carat, price, data = diamonds, colour = I(alpha("black", 1/200)))
Error in unique(c("AsIs", oldClass(x))) : could not find function "alpha"

 

위와 같이 에러가 뜨는 이유는 alpha 함수가 scale 패키지에 포함되어 있기 때문이다. 
따라서 아래와 같이 scale 패키지를 먼저 실행하면 된다. 

> library("scales", lib.loc="~/R/win-library/3.1")
> qplot(carat, price, data = diamonds, colour = I(alpha("black", 1/200)))

 

<alpha 값의 변화에 따른 그래프의 모습>


728x90