R에서 가장 흔히 사용되는 함수로 분포도나 꺽은선 그래프 등을 그릴 수 있다.
plot(y축 데이터, 옵션)
plot(x축 데이터, y축 데이터, 옵션)
plot.new()
: 현재 창의 내용을 모두 지우고 새로 그래프를 그림.dev.new()
: 새로운 창에 그래프를 다시 그림. R에서 대부분 데카르트 방식을 이용한다.
데카르트 방식 : plot(x,y)
수식기반 방식 : plot(y~x)
> var1 <- c(1,2,3,4,5)
> plot(var1)
par(mfrow = c(nr,nc))
: 가로 방향nr
: 행의 갯수nc
: 열의 갯수par(mfcol = c(nr,nc))
: 세로 방향Error in plot.new() : figure margins too large
margin
기본 설정이 너무 좁게 설정 되어 있어 발생하는 오류이다.
➡️ 마진을 재설정:
1.
#par("mar")
par(mar=c(1,1,1,1))
그래프 타입 | 설명 |
---|---|
type="p" | 점 모양(기본값) 그래프 |
type="ㅣ" | 선 모양(꺾은선) 그래프 |
type="b" | 점과 선 모양 그래프 |
type="c" | "b"에서 점을 생략한 그래프 |
type="o" | 점과 선을 중첩해서 그린 그래프 |
type="h" | 각 점에서 x축까지의 수직선(막대선) 그래프 |
type="s" | 왼쪽값을 기초로 계단모양으로 연결한 선 |
type="S" | 오른쪽값을 기초로 계단모양으로 연결한 선 |
type="n" | 그래프 없이 축만 그린 것 |
선의 모양 | 설명 |
---|---|
lty=0, lty="blank" | 투명선 |
lty=1, lty="solid" | 실선 |
lty=2, lty="dashed" | 대쉬선 |
lty=3, lty="dotted" | 점선 |
lty=4, lty="dotdash" | 점선과 대쉬선 |
lty=5, lty="longdash" | 긴 대쉬선 |
lty=6, lty="twodash" | 2개의 대쉬선 |
색, 기호 등 | 설명 |
---|---|
col=1, col="blue" | 기호의 색지정, 1-검정, 2-빨강, 3-초록, 4-파랑, 5-연파랑, 6-보라, 7-노랑, 8-회색 |
lwd="숫자" | 선의 굵기 |
cex="숫자" | 점/문자의 굵기 |
pch=0, pch="문자" | 점의 모양 지정, 1-원, 2-삼각형, 3-+, 4-X, 5-마름모, 6-역삼각형, 7-네모 안에 X |
axis(), title(), legend()
axis()
: 눈금 변경, x, y축을 사용자의 지정값으로 표시axis(숫자, # 1:x축 눈금, 2: y축 눈금
at=, # 눈금을 표현하는 숫자벡터
labels= ) # 각 눈금에 부여하는 이름
plot()
옵션:axes=F
- x, y축을 표시하지 않음tmag=2
: 제목 등에 사용되는 문자의 확대율 지정par(mfrow=c(1,2))
plot(c(120, 150, 100), type='o')
axis(1, at=1:3, labels = c('FRI', 'SAT', 'SUN'))
plot(c(120, 150, 100), type='o', axes=F) # 눈금에 디폴트(x,y축)값 제거
axis(1, at=1:3, labels = c('FRI', 'SAT', 'SUN'))
axis(2, ylim=c(0,150)) #기존의 y눈금값 유지 + 새로운 눈금값 추가
title()
: 제목title(main = "제목", # 그래프 제목
sub = "제목", # 그래프 서브 제목
col.main, # 그래프 이름 색깔
xlab = "문자", # x축 이름
ylab = "문자", # y축 이름
cex.lab = 숫자, # 점/문자의 굵기
font.lab = 숫자 ) # 폰트 크기
plot()
옵션:ann=F
- x, y축 이름을 지정하지 않음plot(c(75, 110, 35, 230, 190), type='o', col='red', ylim=c(0,250), axes=FALSE, ann=FALSE)
axis(1, at=1:5, lab=c("MOM", "TUE", "WED", "THU", "FRI"))
axis(2, ylim=c(0, 250))
title(main="FRUIT", font.main=4)
title(xlab="DAY", col.lab="black")
title(ylab="PRICE", col.lab="black")
legend()
: 범례data.frame(apple=c(100,210,300), banana=c(170,105, 130), mango=c(250,200,330))
plot(df1$apple, type='o', ylim=c(0,350), col=2, ann=F)
lines(df1$banana, type='o', col=3)
lines(df1$mango, type='o', col=4)
legend(2.5, 350, legend=c("apple", "banana", "mango"), cex=1, col=2:4, pch=1, lty=1)
# legend(x축 위치, y축 위치, 내용, cex=글자크기, col=색상, pch=크기, lty=선모양)
x <- 1:3 ; y<- 3:1
plot(x, y, xlim=c(1,5), ylim=c(1,3),
xlab="X축 값", ylab="Y축 값", main="Plot Test",
family="AppleGothic")
xlim
, ylim
: 인자를 사용해 수동으로 한계값 지정.xlab
, ylab
: x축, y축 이름 지정.main
: 그래프 이름 지정.family="AppleGothic
: 맥의 경우, 한글 깨짐 현상으로 인해 글씨체 지정.참고,
https://blog.naver.com/eatgs/221874583160
https://blog.naver.com/1stwook/220670083505