11 min to read
R-Studio 3Dpie, histogram 그리기.
R-Studio의 차트 그리기.
R-Studio 도 함수를 만들 수 있다.
차트를 그리기에 앞서 차트를 그릴 인자 값의 자료형이 행렬 혹은 벡터 여야 한다.
본래 차트 함수에 legend 인자가 있는경우 legend() 함수의 단독 함수 사용이 대부분 가능하다.
사용된 함수
Use | Descriptions |
---|---|
pie(x...) |
기본 파이 차트 그리기. ?pie 해보자. |
install.packages("plotrix") |
library(plotrix) 3D모형의 pie plot |
hist(x...) |
히스토그램 차트. 빈도수 표현의 최적 |
rainbow(리턴받을 rgb코드 의 갯수) |
자료의 구분마다 색을 출력해줌. |
legend(x...) |
legend값이 있는 차트에 범례를 그려줌. |
파일 소스
우클릭 -> 다른이름으로 링크저장 이용해 주세요
교통 사고 데이터.csv
2000-2013년 연령별실업율_연령별평균_세로.csv
사용 예시 소스코드
traffic <- read.csv("교통 사고 데이터.csv")
str(traffic) # 구조 요약
summary(traffic) # 데이타 프레임 요약
unique(traffic$사고유형_대분류)
# [1] 차대사람 차량단독 차대차
# Levels: 차대사람 차대차 차량단독
# table : 빈도 별 카테고리를 작성 하여 표를 만들어줌
circle <- table(traffic$사고유형_대분류)
circle
# 차대사람 차대차 차량단독
# 1647 1646 826
# 자료형 확인
mode(circle)
class(circle)
# init.angle : pie 차트의 위상 각
# 레이블 붙히기
myLabels01 <- paste(names(circle), "\n", circle)
pie(x = circle, main = "사고 유형", col = myColor, init.angle = 45, labels = myLabels01)
# 다른 차트
install.packages("plotrix")
library(plotrix)
# ?pie3D.labels
# 3D파이차트
pieCusChar <- pie3D(circle, main = "파이차트")
# 3D파이차트 레이블 붙히기
pec <- paste(names(circle), "\n", round(circle/sum(circle)*100, 2), "%")
pie3D.labels(pieCusChar, labels = pec, labelcex = 0.8)
# "도로형태_대분류" 로 파이 그래프 그리기
table01 <- table(traffic$도로형태_대분류)
priCusChar01 <- pie3D(table01, main = "도로형태 대분류")
# 파이 차트 그리기
pec01 <- paste(names(table01), "\n", round(table01/sum(table01)*100, 2), "%")
pie3D.labels(priCusChar01, labels = pec01, labelcex = 0.8, minsep = 1.1)
# 히스토그램 그리기
students <- read.csv("students_height.csv", header = T)
students
# 정보 확인
summary(students)
# density : 밀도
# 키 값으로 히스토 그램 그리기(빈도수 차트)
height <- students$키
hist_Info <- hist(height)
# 빈도 ON
hist_Info <- hist(height, freq = T)
# 빈도 OFF
# 정보를 출력해줌.
hist_Info <- hist(height, freq = F)
attributes(hist_Info)
hist_Info
# 빈도 계산
# 확률 밀도 총합.
totalSum <- sum(hist_Info$density)
totalSum
# 계급 * 확률 밀도의 총합
# 네모 박스의 넓이 가 결국 총합.
all_prop <- sum(totalSum * 5)
all_prop
# 빈도수 더 쪼개기(breaks)
# 빈도 기준을 쪼개면 더 세세해 진다.
histinfo <- hist(height, breaks = 10)
histinfo <- hist(height, breaks = 20)
# 커스텀 breaks
custom_brk <- seq(150, 190, 5)
custom_brk
histinfo <- hist(height, breaks = custom_brk)
# 바 속성 색상 주기
myColor <- rainbow(15)
histinfo <- hist(height, breaks = 10, main = "학생들의 키", col = myColor, xlim = c(159, 185))
# 경상자수
height01 <- table(traffic$경상자수)
histinfo01 <- hist(height01, main = "경상자들수")
histinfo01
#
v1 <- c(10, 12, 15, 11, 20)
v2 <- c(5, 7, 15, 8, 9)
v3 <- c(11, 20, 15, 18, 13)
# 통계개념에 의해서 15가 이상치
# boxstats <- boxplot(v1, v2, v3, col=rainbow(3), names=c('B', 'Y', 'P'), horizontal = F) #default
boxstats <- boxplot(v1, v2, v3, col=rainbow(3), names=c('B', 'Y', 'P'), horizontal = T)
# 목록중 stats 를 보면 최소 최대 사분위계수를 알 수 있다.
# n은 각 그룹당 값 갯수
# out은 이상치 를 이야기함. 여기서 이상치는 15
# out은 그룹과 같이 보아야 한다.
# names는 컬럼 이름
boxstats
######################################################################################
getColorValue <- function(vec) {
return(rainbow(length(vec)))
}
data <- read.csv("2000-2013년 연령별실업율_연령별평균_세로.csv")
str(data) # 구조
# 'data.frame': 14 obs. of 6 variables:
# $ 연도 : Factor w/ 14 levels "2000년","2001년",..: 1 2 3 4 5 6 7 8 9 10 ...
# $ X20대 : num 7.5 7.4 6.6 7.7 7.9 7.7 7.7 7.1 7 7.9 ...
# $ X30대 : num 3.6 3.2 2.9 3 3.1 3.3 3 3.2 3.1 3.6 ...
# $ X40대 : num 3.5 3 2 2.2 2.3 2.6 2.3 2 2.1 2.5 ...
# $ X50대 : num 3.3 2.8 2 2.2 2.3 2.5 2.2 2.1 2 2.5 ...
# $ X60세이상: num 1.5 1.2 1.1 1 1.2 1.3 1.4 1.4 1.2 1.6 ...
dim(data) # 14행 6열
# [1] 14 6
head(data) # 확인해보기기
# 연도 X20대 X30대 X40대 X50대 X60세이상
# 1 2000년 7.5 3.6 3.5 3.3 1.5
# 2 2001년 7.4 3.2 3.0 2.8 1.2
# 3 2002년 6.6 2.9 2.0 2.0 1.1
# 4 2003년 7.7 3.0 2.2 2.2 1.0
# 5 2004년 7.9 3.1 2.3 2.3 1.2
# 6 2005년 7.7 3.3 2.6 2.5 1.3
# 컬럼이름 바꾸기
colnames(data) <- c("연도", "20대", "30대", "40대", "50대", "60대이상")
age_20 <- data$`20대`
plot(age_20, xlab="", ylab="", main="연령별 실업율 현황", col="violet", type="o", lwd=2, axes=F, ylim=c(0, 11))
len <- c(3:6)
mycolor <- getColorValue(len)
# for문으로 꺾은선 그리기
for(idx in len) {
age <- data[, idx]
# las : 2를 주면 90도 회전
lines(age, col=mycolor[idx-2], type='o', lwd=2)
}
#
rowsu <- nrow(data)
rowsu
colname <- data$연도
colname
# x, y 레이블 그려줌. 그리기 전에 먼저 plot 함수에 axes=F 를 인자로 줘야함.
# X레이블 side값이 1:x 2:y
axis(side=1, at=1:rowsu, label=colname, las=2)
# y레이블
axis(side=2, las=1)
# 가이드선 그리기.
abline(h=seq(0, 10, 1), v=seq(1, rowsu, 1), lty=2, lwd=2)
# 우측 상단 범례 그리기
column_name <- colnames(data[2:6])
column_name
# gsub(바뀔단어, 새단어, 작업대상) sub:sutstitute
# new_column_name <- gsub('X', ', column_name')
colors <- getColorValue(column_name)
# x : topright(오른쪽 위), bg : 범례 바탕색
legend(x = "topright", column_name, cex=0.8, col=colors, lty=1, lwd=2, bg="white")
Comments