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
'프로그래밍 Programming' 카테고리의 다른 글
01. 텍스트마이닝(Text Mining)을 위한 패키지 준비 (0) | 2014.11.14 |
---|---|
Plot geoms(geometric objects) (1) - 추세선 그리기 (span, gam, lm, rlm) (0) | 2014.11.09 |
데이터 읽기, 데이터 프레임, 세분화, 요약 (Data Handling) (0) | 2014.11.01 |
Information Visualization (15) - R 그래픽 기초 (직선그래프 영역채우기) (0) | 2014.10.29 |
Information Visualization (14) - R 그래픽 기초 (그래프 그리기 Line Graphs, Curves) (0) | 2014.10.29 |