R

[R] 시각화 - 산점도 그래프(scatter plot)

ㄷㅐ장님 2022. 1. 25. 18:53

산점도(scatter plot)

: 데이터를 점으로 표시하여 흩뿌리듯이 시각화한 그래프
데이터의 실제값들이 표시되므로 분포를 한눈에 살펴보는데 유용하다.
x-y plotting

 

plot(x=women$height,y=women$weight,
     xlab = '키',ylab='몸무게',
     main='여성의 키와 몸무게',sub='미국 70년대 기준',
     type='b',lty=2,lwd=2,pch=7,cex=2,col="darkblue")

+) type p:점 / l:선 / b:점&선 / c: b의 선 / o:점위에 선 / h:수직선 / s:계단형 / n:나타내지 않음
lty   선의 유형(0~6)  
lwd  선의 굵기 (기본값 1)
pch  점의 종류

 

axis

: x축과 y축을 생성하는 함수

#산점도 그래프(x축,y축 없음)
plot(new$콜레라,xlab="",ylab="",ylim=c(0,300),axes=F,type='o',col="violet")

axis(1,at=1:5,label=rownames(new),las=2) #x축
axis(2) #y축

 

lines

: 다른 데이터를 겹쳐 그리기 위해 사용한다.

lines(new$장티푸스,type='o',col="blue")
lines(new$파라티푸스,type='o',col="red")
lines(new$세균성이질,type='o',col="black")
lines(new$장출혈성대장균감염증,type='o',col="green")
lines(new$장티푸스,type='o',col="blue")

abline(h=seq(0,300,50),v=seq(1,10,1),lty=3,lwd=0.2) #보조선
legend("topleft",legend=names(new)[1:5],cex=0.5,lty=2,lwd=1,
       col=c('violet','blue','red','black','green')) #범례


[문제166] 2015년~2021년까지 서울에서 '경기도','부산광역시','인천광역시','대구광역시','세종특별자치시' 으로 이동자수를 그래프로 시각화해주세요.

1) 전처리

data <- read.csv("c:/data/서울시이동자수.csv",head=T)
data <- data[-1,-1]
names(data)[2:8] <- c(2015:2021) 
data <- data.frame(t(data))
names(data) <- data[1,]
data <- data[-1,]
str(data)

2) char → int 변환

data[,1:16] <- lapply(data[,1:16],as.integer)
str(data)

3) 산점도 그래프 그리기

plot(data$경기도,xlab="",ylab="",ylim=c(0,400000),axes=F,col='violet',type='b')
lines(data$부산광역시,col='blue',type='b')
lines(data$인천광역시,col='red',type='b')
lines(data$대구광역시,col='black',type='b')
lines(data$세종특별자치시,col='green',type='b')
axis(1,at=(1:7),label=rownames(data),las=2)
axis(2,at=seq(0,400000,by=50000),las=2)
abline(v=seq(1,10,1),lty=3,lwd=0.2)
legend(xy.coords(300000),legend=c('경기도','부산광역시','인천광역시','대구광역시','세종특별자치시'),
       col=c('violet','blue','red','black','green'),cex=0.5,lty=1,lwd=0.5)