그래프 > 산점도...
Graphs > Scatterplot...

Windows 사례 (10 Pro)

산점도(Scatterplot)은 두개의 수치형 변수 사이의 수리적 연관성에 관한 시각화 기법이다. 아래의 화면에서 각 하나씩을 x-변수와 y-변수에 선택해야 한다. Prestige 데이터셋에 있는 education (교육연수), income (수입, 연소득)을 각각 선택해보자.

Windows 사례 (10 Pro)

<선택기능>창에 여러가지 추가 기능과 선택사양들이 있다. 먼저 <그림 선택기능> 중에 <최소-제곱 선>, <평활선>을 선택해보자. 그리고 <그림 이름표와 점 정보>에 변수와 그래프를 이해하는 데 도움을 주는 내용을 입력한다. 그리고 <Point(점) 크기>, <축 텍스트 크기>, <축-이름표 텍스트 크기> 등의 크기를 조금씩 변경할 수 있다.

Windows 사례 (10 Pro)

scatterplot(income~education, regLine=TRUE, smooth=list(span=0.5, 
  spread=FALSE), boxplots=FALSE, xlab="education (교육연수)", 
  ylab="income (수입, 연소득)", main="교육연수와 연소득의 관계", cex.axis=1.5, cex.lab=1.5, 
  data=Prestige)

새로운 그래픽장치 창에 산점도가 출력된다. <교육연수와 연소득의 관계>를 시각적으로 살펴보고자 한 목적으로 점들의 분포와 추가된 최소제곱선, 평활선 등을 점검한다. 교육연수와 연소득의 관계의 방향, 크기 및 경향성 등에 대한 통찰력을 키울 수 있다.

Windows 사례 (10 Pro)

한편, 산점도에 요인형 변수의 수준별로 나누어 시각화를 할 수 있다. Prestige 데이터셋에는 type 이라는 요인형 변수가 있는데, 직업유형에 따른 <교육연수와 연소득의 관계>를 보다 미시적으로 살펴볼 수 있다. 그리고 x-축, y-축 이름 옆에 <한계적인 상자그림>을 추가하여 각 변수들의 수치적 특징을 추가할 수 있다.

scatterplot(income~education | type, regLine=TRUE, smooth=list(span=0.5, 
  spread=FALSE), boxplots='xy', xlab="education (교육연수)", ylab="income (수입, 
  연소득)", main="교육연수와 연소득의 관계", cex.axis=1.5, cex.lab=1.5, by.groups=TRUE, 
  data=Prestige)

Windows 사례 (10 Pro)


?scatterplot  # car 패키지의 scatterplot 도움말 보기

scatterplot(prestige ~ income, data=Prestige, ellipse=TRUE)

scatterplot(prestige ~ income, data=Prestige, smooth=list(smoother=quantregLine))

# use quantile regression for median and quartile fits
scatterplot(prestige ~ income | type, data=Prestige,
            smooth=list(smoother=quantregLine, var=TRUE, span=1, lwd=4, lwd.var=2))

scatterplot(prestige ~ income | type, data=Prestige, legend=list(coords="topleft"))

scatterplot(vocabulary ~ education, jitter=list(x=1, y=1),
            data=Vocab, smooth=FALSE, lwd=3)

scatterplot(infantMortality ~ ppgdp, log="xy", data=UN, id=list(n=5))

scatterplot(income ~ type, data=Prestige)

## Not run: 
    # remember to exit from point-identification mode
    scatterplot(infantMortality ~ ppgdp, id=list(method="identify"), data=UN)

## End(Not run)

그래프 > 대칭 상자그림...
Graphs > Symmetry boxplot...

Linux 사례 (MX 21)

Prestige 데이터셋에 있는 income 변수를 선택해보자.

Linux 사례 (MX 21)

?symbox  # car 패키지의 symbox 도움말 보기

symbox(~ income, data=Prestige, trans=bcPower, powers=c(-1,-0.5,0,0.5,1))

그래픽장치 창에 아래와 같이 시각화된다:

Linux 사례 (MX 21)

그래프 > 분위수-비교 그림...
Graphs > Quantile-comparison plot...
분위수-비교 그림은 수치형 변수 사례 값의 분포적 경향성을 확인하는데 사용된다. 또한 변수들의 관계에 대한 수리적 계산 과정에서 발생하는 잔차(Residuals)들의 분포적 특징을 확인하는데 활용할 수 있다.

Linux 사례 (MX 21)

Prestige 데이터셋에 있는 수치형 변수중에 income 변수를 선택해보자.

Linux 사례 (MX 21)

<선택기능> 메뉴 창을 열면, income 변수의 특징을 맞춰 볼 분포들을 선택하는 기능이 있다. 기본 설정으로 되어있는 정규분포를 많이 사용한다. 오른쪽에 있는 <그림 이름표>에 출력될 그래프의 정보를 담는 내용을 입력할 수 있다.

Linux 사례 (MX 21)

정규분포적 특징 안에서 income 변수의 사례적 흐름을 시각적으로 확인할 수 있다. 오른쪽 상단에 두 개의 이상치가 있는데, general.managers, physicians 직업이라고 알려준다.

Linux 사례 (MX 21)
with(Prestige, qqPlot(income, dist="norm", id=list(method="y", n=2, 
	labels=rownames(Prestige)), ylab="income (수입)", 
    main="income 변수의 분위수-비교 그림"))
Linux 사례 (MX 21)

아래 그래프는 income 변수 대신 education 변수를 선택해서 정규분포적 특징 안에서 살펴본 것이다. income 변수에 비해서 이상치들이 적게 보인다.

Linux 사례 (MX 21)

아래 그래프는 Prestige 데이터셋에 포함된 prestige 변수의 분위수-비교 그림의 시각화 결과이다. 정규분포적 특징 안에서 prestige 변수의 사례들이 분포되어 있음을 알 수 있다.

Linux 사례 (MX 21)

참고로 income 변수에 log 계산을 한 후 분위수-비교 그림을 그려보자. 원래의 income 변수보다 정규분포적 특징이 강화된다.

Linux 사례 (MX 21)

?qqPlot  # car 패키지의 qqPlot 도움말 보기

x<-rchisq(100, df=2)
qqPlot(x)
qqPlot(x, dist="chisq", df=2)

qqPlot(~ income, data=Prestige, subset = type == "prof")
qqPlot(income ~ type, data=Prestige, layout=c(1, 3))

qqPlot(lm(prestige ~ income + education + type, data=Duncan),
	envelope=.99)

https://rcmdr.kr/m/205

2. Residual quantile-comparison plot...

모델 > 그래프 > 잔차 분위수-비교 그림... Models > Graphs > Residual quantile-comparison plot... 데이터셋을 활성화시키고, 분석 모형을 만들었다면, '모델 > 그래프 > 잔차 분위수-비교 그림...' 메뉴 기능..

rcmdr.kr

그래프 > 상자그림...
Graphs > Boxplot...

Linux 사례 (MX 21)

Prestige 데이터셋의 수치형 변수 income을 요인형변수 type의 수준별로 상자그림을 만들고 type별로 비교해보자.

Linux 사례 (MX 21)

<데이터> 옆에 있는 <선택기능>으로 넘어가서 살펴보자. 기본설정으로 되어있는 <마우스 이상치 식별하기>의 '자동적으로'를 놔두고, <그림 이름표>에 한글을 입력하면서 의미적 해석이 가능한 이름과 제목을 넣는다.

Linux 사례 (MX 21)

그래픽장치 창에 상자그림이 등장한다. 직업유형의 수준인 bc, prof, wc (블라칼라, 전문직, 화이트칼라) 별로 상자그림이 시각화되어 최소값, 중앙값(median), 최대값과 25%, 75% 수준의 값과 이상치 등이 표시된다.

Linux 사례 (MX 21)

아래와 같은 명령문이 사용된다:

Boxplot(income~type, data=Prestige, id=list(method="y"), xlab="직업유형(type)", 
  ylab="수입(연봉, income)", main="1971년 캐나다 직업유형별 수입")

?Boxplot  # car 패키지의 Boxplot 도움말 보기

Boxplot(~income, data=Prestige, id=list(n=Inf)) # identify all outliers
Boxplot(income ~ type, data=Prestige)
Boxplot(income ~ type, data=Prestige, at=c(1, 3, 2))
Boxplot(k5 + k618 ~ lfp*wc, data=Mroz)
with(Prestige, Boxplot(income, id=list(labels=rownames(Prestige))))
with(Prestige, Boxplot(income, type, id=list(labels=rownames(Prestige))))
Boxplot(scale(Prestige[, 1:4]))

그래프 > 줄기-잎 전시...
Graphs > Stem-and-leaf display...

Linux 사례 (MX 21)

Prestige 데이터셋의 income 변수로 연습해보자. 먼저 income 변수의 수리적 특징에 대하여 점검한다.

Linux 사례 (MX 21)

Prestige 데이터셋에 있는 수치형 변수 중에서 income 변수를 선택한다. 그리고 선택기능을 살펴본다.

Linux 사례 (MX 21)
Linux 사례 (MX 21)

 

Linux 사례 (MX 21)


?stem.leaf  # aplpack 패키지의 stem.leaf 도움말 보기

stem.leaf(co2)
stem.leaf.backback(co2[1:120],co2[121:240])
stem.leaf.backback(co2[1:120],co2[121:240], back.to.back = FALSE)
stem.leaf.backback(co2[1:120],co2[121:240], back.to.back = FALSE,
                   add.more.blanks = 3, show.no.depths = TRUE)
stem.leaf.backback(rivers[-(1:30)],rivers[1:30], back.to.back = FALSE, unit=10, m=5, 
                   Min=200, Max=900, add.more.blanks = 20, show.no.depths = TRUE)

그래프 > 밀도 추정...
Graphs > Density estimate...

RGraph_PDF1.pdf
0.01MB
Linux 사례 (MX 21)


밀도 그래프(densityplot)은 수치형 변수를 촘촘히 배열하면서 그 사례사이의 거리를 역으로 밀도화시키는 방법이다. 줄여 말하면, 거리가 가까우면 밀도가 높고, 거리가 멀면 밀도가 낮게 계산되고 시각화된다. Prestige 데이터셋의 income 변수를 사용해보자.

Linux 사례 (MX 21)
Linux 사례 (MX 21)

밀도 추정 그래프를 시각화하는 경우, 그래프의 시작점과 끝점에 대한 사전정보를 수치적 정보 요약 등을 활용하여 미리 알고서 지정해주면 그래프가 보다 정교해진다. 위의 그래프를 보라. 수입(연봉)을 표시하는 촘촘한 사례들의 영역 바깥에 그래프의 왼쪽 긑과 오른쪽 끝이 표시된 것을 보게된다. 변화를 줘보자.

numSummary(Prestige[,"income", drop=FALSE], 
	statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))

numSummary() 함수를 활용하여 최소값, 최대값 등을 찾아보자. 그 사례 값을 아래의 입력창에 넣는다.

Linux 사례 (MX 21)

그래프의 시작점에 최소값을, 끝점에 최대값을 넣고 그래프를 만들면, 수입(연봉)의 분포가 보다 분명하게 보일 것이다.

densityPlot( ~ income, data=Prestige, bw=bw.SJ, adjust=1, kernel=dnorm, 
	method="adaptive", from=611, to=25879, xlab="수입(연봉)", ylab="밀도(Density)")

.

Linux 사례 (MX 21)

한편, 직업유형인 요인형 변수 type을 기준으로 수입(연봉)의 분포를 재분류해보자. <집단 기준으로 그리고...> 버튼을 누르면 <집단 변수 (하나 선택)> 기능에서 요인형 변수 목록이 나타날 것이다. Prestige 데이터셋에는 type 하나만 있다. 그리고 예(OK) 버튼을 누른다.

Linux 사례 (MX 21)

그러면 <집단 기준으로 그리기...> 버튼이 <Plot by: type>으로 바뀐다. type의 수준별로 income의 밀도 분포를 시각화할 준비가 된 것이다.

Linux 사례 (MX 21)

그래픽장치 창에 type 별 수입(연봉)에 대한 밀도 그래프가 등장한다. 그래프의 오른쪽에는 네모상자 안에 범례 표시가 있어서 어떤 선이 요인형 변수의 어떤 수준을 나타내는지 알려준다.

Linux 사례 (MX 21)

그래프 > 그래프를 파일로 저장하기 > PDF/Postscript/EPS(으)로 에서 PDF 파일로 저장해보자. 넓이와 높이에 대한 조정 없이<글 크기 (점)>을 16까지 키워보자.

Linux 사례 (MX 21)

아래 코드에서 'main'인자를 살펴보라. 메뉴창에 등장하는 기능을 활용하면서 적용할 수 있는 범위에 DensityPlot 함수에는 제목 입력이 없다. 아쉽기도 한 부분이다. 이 경우는 입력창에서 main="제목 이름"을 추가하여 넣고 실행하기 버튼을 누르면 된다.

densityPlot(income~type, data=Prestige, bw=bw.SJ, adjust=1, kernel=dnorm, 
	method="adaptive", from=611, to=25879, xlab="수입(연봉)", ylab="밀도(Density)", 
    main="1971년 캐나다 직업 유형별 수입에 관한 밀도그래프")

Linux 사례 (MX 21)

더보기

Q1> 첨부된 PDF 파일에는 제목과 축에 사용된 한글이 보이지 않고 점(...)으로 표시됩니다. 고쳐주세요.


?densityPlot  # car 패키지의 densityPlot 도움말 보기

densityPlot(~ income, show.bw=TRUE, method="kernel", data=Prestige)
densityPlot(~ income, show.bw=TRUE, data=Prestige)
densityPlot(~ income, from=0, normalize=TRUE, show.bw=TRUE, data=Prestige)

densityPlot(income ~ type, data=Prestige)
densityPlot(~ income, show.bw=TRUE, method="kernel", data=Prestige)
densityPlot(~ income, show.bw=TRUE, data=Prestige)
densityPlot(~ income, from=0, normalize=TRUE, show.bw=TRUE, data=Prestige)

densityPlot(income ~ type, kernel=depan, data=Prestige)
densityPlot(income ~ type, kernel=depan, legend=list(location="top"), data=Prestige)

plot(adaptiveKernel(UN$infantMortality, from=0, adjust=0.75), col="magenta")
lines(density(na.omit(UN$infantMortality), from=0, adjust=0.75), col="blue")
rug(UN$infantMortality, col="cyan")
legend("topright", col=c("magenta", "blue"), lty=1,
       legend=c("adaptive kernel", "kernel"), inset=0.02)


plot(adaptiveKernel(UN$infantMortality, from=0, adjust=0.75), col="magenta")
lines(density(na.omit(UN$infantMortality), from=0, adjust=0.75), col="blue")
rug(UN$infantMortality, col="cyan")
legend("topright", col=c("magenta", "blue"), lty=1,
       legend=c("adaptive kernel", "kernel"), inset=0.02)

그래프 > 히스토그램...
Graphs > Histogram...

Linux 사례 (MX 21)

히스토그램으로 시각화할 변수는 수치형 (numeric, integer)이다. Prestige의 요인형 변수 type은 <집단기준으로 그리기...>에서 선택할 수 있다.

Linux 사례 (MX 21)

income 변수의 정보를 몇 개의 구간으로 나눠서 히스토그램을 만들 것인가, 그래프의 이름(title, label)관련 정보를 어떻게 넣을 것인가를 조정, 입력할 수 있다.

Linux 사례(MX 21)

 with(Prestige, Hist(income, scale="frequency", breaks="Sturges", col="darkgray", 
	ylab="수입(연봉)", main="1971년 캐나다 직업 연봉"))

그래픽장치 창에 다음과 같은 히스토그램이 등장한다.

Linux 사례 (MX 21)

파일로 저장하여 활용하고자 할 때 사용하는 기능이다.

Linux 사례 (MX 21)

<bitmap(으)로...> 기능을 열면, 아래와 같은 파일 저장 선택기능들을 점검할 수 있다. 표현하고자는 시각화 목표에 따라 넓이와 높이를 변화줄 수 있고, 해상도를 높게, 글 크기를 크게 할 수 있다.

Linux 사례(MX 21)

 

dev.print(png, filename="/home/jhshin/RGraph_historgram1.png", width=7, height=7, 
	pointsize=16, units="in", res=300)

예(OK) 버튼을 누르면 파일의 경로와 이름을 정할 수 있는 메뉴창이 아래와 같이 등장한다. 저장 경로를 결정하고, 희망이름.png 파일로 저장하자.

Linux 사례 (MX 21)

저장된 파일을 다시 한번 열어보자. 아래와 같다:

Linux 사례 (MX 21)


?Hist  # RcmdrMisc 패키지의 Hist 도움말 보기

 data(Prestige, package="car")
    Hist(Prestige$income, scale="percent")
    with(Prestige, Hist(income, groups=type))

그래프 > 그래프를 파일로 저장하기 > PDF/Postscript/EPS로…
Graphs > Save graph to file > As PDF/Postscript/EPS...

'Graphs > Save graph to file' 카테고리의 다른 글

3. 3D RGL graph...  (0) 2022.03.07
1. As bitmap...  (0) 2022.02.27

그래프 > 그래프를 파일로 저장하기 > bitmap으로…
Graphs > Save graph to file > As bitmap...

'Graphs > Save graph to file' 카테고리의 다른 글

3. 3D RGL graph...  (0) 2022.03.07
2. As PDF/Postscript/EPS...  (0) 2022.02.27

그래프 > 색인 그림...
Graphs > Index plot...
데이터셋이 활성화되어 있는 경우, 색인 그림(index plot)을 사용할 수 있다. 예를 들어, carData 패키지의 Prestige 데이터셋이 활성화되어있다고 하자.

Linux 사례 (MX 21)

Prestige 데이터셋에 있는 education 변수의 색인 그림을 만들자. 메뉴창에 있는 variable (pick one or more) 에서 education을 선택한다. 그 아래에 있는 <집단별 표시...>에서 요인형 변수를 선택하여 요인 수준별로 색인 그림을 출력할지 결정할 수 있다(이 설명에서는 이 기능을 사용하지 않는다). 그리고 <선택기능> 디렉토리로 이동하여 세부사항을 점검한다.

Linux 사례 (MX 21)

<선택기능>의 메뉴창에 다양한 기능이 있다. <그림 이름표>에서 <y-축 이름표> <그래프 제목>는 자동적으로 변수이름이 사용되고 제목은 미설정되는데, '교육연수'와 'education index plot'이라고 입력하자. 그리고 예(OK) 버튼을 누른다.

Linux 사례 (MX 21)

새로운 그래픽 장치창이 등장한다. 그리고 그 장치창에 안의 아래 화면 왼쪽에 '교육연수'가, 상단 중앙에 'education index plot'이 출력된다. 한편 그래프 안에 두개의 사례 이름이 겹쳐서 인쇄된 현상을 보게된다.

Linux 사례 (MX 21)

아래 출력창을 살펴보자. indexplot() 함수의 코드 사용법을 먼저 살펴본다. 앞서 입력한 '교육연수', 'education index plot'이 인자 안에 들어있는 알 수 있다.

indexplot(Prestige[,'education', drop=FALSE], type='h', id.method='y', id.n=2, 
ylab="교육연수", main="education index plot")

education 변수의 사례 값 중에서 university.teachers는 15.97, physicians는 15.96라는 두개의 최고 값을 갖는다. 출력창에는 university.teachers, physicians 라는 순서와 함께 사례번호인 21, 24가 출력된다.

한편 그 밑에 있는 명령문은 출력된 그래픽창의 그림을 저장하는 내용을 담고 있다.

dev.print(png, filename="/home/jhshin/사진/Rcmdr/Graphs/indexplot/RGraph_indexplot1.png", 
width=13, height=8, pointsize=12, units="in", res=300)

Linux 사례 (MX 21)

Graphs > Save graph to file 메뉴에서 <bitmap(으)로...> 기능을 선택하면 아래와 같은 선택창이 등장한다. 해상도를 300으로 최대한으로 올려보자. 예(OK) 버튼을 누른다.

Linux 사례 (MX 21)

그래픽 파일을 저장할 위치를 결정하고, 결정한 파일 이름을 입력하고 저장하기(save)를 누른다. 실용적으로 RGraph_indexplot1.png라고 저장해보자.

Linux 사례 (MX 21)


?indexplot  # RcmdrMisc 패키지의 indexplot 도움말 보기

if (require("car")){
    with(Prestige, indexplot(income, id.n=2, labels=rownames(Prestige)))
    indexplot(Prestige[, c("income", "education", "prestige")], 
        groups = Prestige$type, id.n=2)
}

Linux 사례 (MX 21)
Linux 사례 (MX 21)

+ Recent posts