본론
2-1-10 ggplot2 패키지
ggplot2 패키지의 활용 예제
> install.packages("ggplot2")
jumsu <- read.table("student_korean_score.txt",header=T,sep="")
> jumsu
이름 과목 점수
1 이효우 국어 90
2 양덕유 국어 70
3 박민정 국어 92
4 장동희 국어 76
5 이천균 국어 97
6 홍진관 국어 80
7 최보희 국어 20
8 윤정웅 국어 50
9 주인혜 국어 60
>
ggplot(jumsu,aes(x=이름,y=점수)) + geom_point()
savePlot("2-1-10.png",type="png")
ggplot(data.aes(x=x축 데이터 , y=y출 데이터)) + geom 함수
ggplot(jumsu,aes(x=이름,y=점수)) + geom_bar(stat="identity")
savePlot("2-1-11.png",type="png")
-->기존 점과는 다르게 막대로 표시
ggplot(jumsu,aes(x=이름,y=점수)) + geom_bar(stat="identity",fill="cyan",color="red")
savePlot("2-1-12.png",type="png")
-->막대그래프와 테두리 색상 입히기
gb <- ggplot(jumsu,aes(x=이름,y=점수)) + geom_bar(stat="identity",fill="cyan",color="red")
gb + theme(axis.text.x=element_text(angle=45,hjust=1,vjust=1,color="blue",size=10))
-->angle 함수로 x축 항목을 기울인다
savePlot("2-1-13.png",type="png")
student_info_kem.csv 를 이용함
kem <- read.csv("student_info_kem.csv",header=T,sep=",")
-->과목별로 구분되어있음 , 이름으로 구분지어야함
lab <- arrange(kem,이름,과목)
lab <- ddply(lab,"이름",transform,합계=cumsum(점수))
> lab
이름 과목 점수 합계
1 박민정 국어 92 92
2 박민정 수학 76 168
3 박민정 영어 95 263
-->합계점수가 없으면 위치 선정이 어렵기때문에 생성한것
-->ddply 함수로 plyr패키지안의 함수로 데이터 프레임형태로 저장해주는 함수
lab <- ddply(lab,"이름",transform,합계=cumsum(점수)-0.5*점수)
> lab
이름 과목 점수 합계
1 박민정 국어 92 46.0
2 박민정 수학 76 130.0
3 박민정 영어 95 21
-->수치를 그래프에 표시하기위한 위치를 계산하기
gb2 <- ggplot(lab,aes(x=이름,y=점수,fill=과목)) + geom_bar(stat="identity") + guides(fill=guide_legend(reverse=TRUE)) +
##geom_text(aes(y=label,label=paste(점수,"점")),color="black",size=4)
-->왜안되지
gb2 + theme(axis.text.x=element_text(angle=45,hjust=1,vjust=1,color="black",size=10))
savePlot("2-1-14.png",type="png")
2-1-11 geom_segment() 함수
student_info_txt.txt 이용
-->cleveland dot plot 을 만들어주는 함수
-->cleveland.png 참조
data <- read.table("student_info_txt.txt",header=T,sep=",")
data[,c("이름","국어")]
ggplot (data,aes(x=국어,y=reorder(이름,국어))) + geom_point(size=5) + theme_bw() + theme(panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank(),panel.grid.major.y=element_line(color="red",linetype="dashed"))
savePlot("2-1-15.png",type="png")
ggplot(data,aes(x=국어,y=reorder(이름,국어))) + geom_segment(aes(yend=이름),xend=0,color="red") + geom_point(size=5)+ theme_bw() + theme(panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank(),panel.grid.major.y=element_blank())
savePlot("2-1-16.png",type="png")
2-1-12 geom_line()함수
3_student_point.csv 파일을 이용함
data2 <- read.csv("3_student_point.csv",header=T)
> data2
이름 과목 점수
1 이효우 국어 90
2 양덕유 국어 70
3 박민정 국어 92
4 이효우 영어 85
5 양덕유 영어 65
data2 <- arrange(data2,이름,과목)
ggplot(data2,aes(x=과목,y=점수,color=이름,group=이름)) + geom_line()
savePlot("2-1-17.png",type="png")
ggplot(data2,aes(x=과목,y=점수,color=이름,group=이름)) + geom_line() + geom_point()
savePlot("2-1-18.png",type="png")
-->점수에 점이 찍히는 그래프 형상
ggplot(data2,aes(x=과목,y=점수,color=이름,group=이름,fill=이름)) + geom_line() + geom_point(size=5,shape=22)
savePlot("2-1-19.png",type="png")
-->점수부분에 사각형 점을찍음
2-1-13 저수준 작도 함수
기존에 그려진 그래프에 선이나 설명을 집어넣음
plot(1:10)
abline(h=5)
rect(1,6,4,9)
arrows(1,1,4,4)
text(8,9,"Test")
title("Here is Main","Here is Sub")
legend(8,3,lty=1:3,c("p","q","r"))
savePlot("2-1-20.png",type="png")
4분면 graph 작도
plot(rnorm(100),rnorm(100),xlim=c(-5,5),ylim=c(-5,5),axes=F,ana=F)
axis(1,pos=0,at=-5:5,adj=0,col=2)
axis(2,pos=0,at=-5:5,adj=0,col=3,las=2)
box()
savePlot("2-1-21.png",type="png")
2019년 8월 21일 수요일
Chp2. GRAPH - 4
본론
2-1-8 stars() 함수
-->R 내장함수로 다양한 속성에대한 분포표를 볼수있음
student_info_csv.csv 파일 활용
이름 국어 영어 수학 국사 화학 물리
이효우 90 85 55 88 91 79
양덕유 70 65 80 75 76 89
박민정 92 95 76 65 89 91
장동희 76 89 88 98 100 91
이천균 97 87 83 91 86 91
홍진관 80 86 97 85 69 77
최보희 20 30 40 50 70 90
윤정웅 50 52 54 56 58 60
주인혜 60 70 80 75 65 55
jumsu <-read.csv("student_info_csv.csv",header=T,sep=",")
row.names(jumsu) <- jumsu$이름
jumsu
이름 국어 영어 수학 국사 화학 물리
이효우 이효우 90 85 55 88 91 79
양덕유 양덕유 70 65 80 75 76 89
박민정 박민정 92 95 76 65 89 91
장동희 장동희 76 89 88 98 100 91
이천균 이천균 97 87 83 91 86 91
홍진관 홍진관 80 86 97 85 69 77
최보희 최보희 20 30 40 50 70 90
윤정웅 윤정웅 50 52 54 56 58 60
주인혜 주인혜 60 70 80 75 65 55
stars(jumsu,flip.labels=F,draw.segment=F,frame.plot=T,full=T,main="학생별 분석 다이어그램")
savePlot("2-1-11.png",type="png")
label <- names(jumsu)
val <-table(label)
pie(val,labels=label,radius=0.1,cex=0.6,col=NA)
savePlot("2-1-12.png",type="png")
-->범주로 사용하기 위한 그래프를 만든것
stars(jumsu,labels=FALSE,draw.segment=TRUE,frame.plot=TRUE,full=T,main="학생별 분석 다이어그램")
-->draw.segment=TRUE 을 사용하면 색을 넣을수 있다
label <- names(jumsu)
val <-table(label)
color<- c("black","red","green","blue","cyan","violet")
pie(val,labels=label,col=color,radius=0.1,cex=0.6)
savePlot("2-1-14.png",type="png")
stars(jumsu,flip.labels=F,draw.segment=T,frame.plot=T,full=F,main="학생별 분석 다이어그램")
savePlot("2-1-15.png",type="png")
2-1-9 bar chart로 데이터 표현하기
data <- read.table("student_info_v.txt",header=T,sep=",")
> data
과목 박민정 양덕유 이효우
1 국사 65 75 88
2 국어 92 70 90
3 물리 91 89 79
4 수학 76 80 55
5 영어 95 65 85
6 화학 89 76 91
>
data2 <- data[,2:4]
박민정 양덕유 이효우
1 65 75 88
2 92 70 90
3 91 89 79
4 76 80 55
5 95 65 85
6 89 76 91
barplot(as.matrix(data2),main="학생별 성적분석",ylab="점수",beside=T,col=rainbow(6),ylim=(c(0,100)))
abline(h=75,lty=3,col="red",lwd=2)
legend(18,140,c("국사","국어","물리","수학","영어","화학"),cex=0.8,fill=rainbow(6))
savePlot("2-1-16.png",type="png")
2-1-8 stars() 함수
-->R 내장함수로 다양한 속성에대한 분포표를 볼수있음
student_info_csv.csv 파일 활용
이름 국어 영어 수학 국사 화학 물리
이효우 90 85 55 88 91 79
양덕유 70 65 80 75 76 89
박민정 92 95 76 65 89 91
장동희 76 89 88 98 100 91
이천균 97 87 83 91 86 91
홍진관 80 86 97 85 69 77
최보희 20 30 40 50 70 90
윤정웅 50 52 54 56 58 60
주인혜 60 70 80 75 65 55
jumsu <-read.csv("student_info_csv.csv",header=T,sep=",")
row.names(jumsu) <- jumsu$이름
jumsu
이름 국어 영어 수학 국사 화학 물리
이효우 이효우 90 85 55 88 91 79
양덕유 양덕유 70 65 80 75 76 89
박민정 박민정 92 95 76 65 89 91
장동희 장동희 76 89 88 98 100 91
이천균 이천균 97 87 83 91 86 91
홍진관 홍진관 80 86 97 85 69 77
최보희 최보희 20 30 40 50 70 90
윤정웅 윤정웅 50 52 54 56 58 60
주인혜 주인혜 60 70 80 75 65 55
stars(jumsu,flip.labels=F,draw.segment=F,frame.plot=T,full=T,main="학생별 분석 다이어그램")
savePlot("2-1-11.png",type="png")
label <- names(jumsu)
val <-table(label)
pie(val,labels=label,radius=0.1,cex=0.6,col=NA)
savePlot("2-1-12.png",type="png")
-->범주로 사용하기 위한 그래프를 만든것
stars(jumsu,labels=FALSE,draw.segment=TRUE,frame.plot=TRUE,full=T,main="학생별 분석 다이어그램")
-->draw.segment=TRUE 을 사용하면 색을 넣을수 있다
label <- names(jumsu)
val <-table(label)
color<- c("black","red","green","blue","cyan","violet")
pie(val,labels=label,col=color,radius=0.1,cex=0.6)
savePlot("2-1-14.png",type="png")
stars(jumsu,flip.labels=F,draw.segment=T,frame.plot=T,full=F,main="학생별 분석 다이어그램")
savePlot("2-1-15.png",type="png")
2-1-9 bar chart로 데이터 표현하기
data <- read.table("student_info_v.txt",header=T,sep=",")
> data
과목 박민정 양덕유 이효우
1 국사 65 75 88
2 국어 92 70 90
3 물리 91 89 79
4 수학 76 80 55
5 영어 95 65 85
6 화학 89 76 91
>
data2 <- data[,2:4]
박민정 양덕유 이효우
1 65 75 88
2 92 70 90
3 91 89 79
4 76 80 55
5 95 65 85
6 89 76 91
barplot(as.matrix(data2),main="학생별 성적분석",ylab="점수",beside=T,col=rainbow(6),ylim=(c(0,100)))
abline(h=75,lty=3,col="red",lwd=2)
legend(18,140,c("국사","국어","물리","수학","영어","화학"),cex=0.8,fill=rainbow(6))
savePlot("2-1-16.png",type="png")
Chp2. GRAPH - 3
본론
2-1-4 히스토그램 hist()
특정 데이터의 빈도를 계산해 막대모양으로 나타내는기능 , hist() 함수를 사용함
b <- c(1,1,1,2,2,3)
hist(b)
savePlot("2-1-1.png",type="png")
2-1-5 파이차트 pie()
전체원을 나눠서 구분하는 파이차트 구성
c <- c(100,200,300,400,500)
pie(c)
savePlot("2-1-2.png",type="png")
차트 argument 목록
angle,demsoty,col - pie부분을 구성하는 각도, 수, 색상지정
labels - pie의 각부분에 이름을 지정한다
radius - 원형의 크기 지정
clockwise - 시계방향 , 반시계방향 지정
init.angle - 시작되는 각도 지정
apple <- c(260,300,250,280,310)
pie(apple)
savePlot("2-1-3.png",type="png")
pie(apple,init.angle=90,col=rainbow(length(apple)),labels=c("월","화","수","목","금"))
savePlot("2-1-4.png",type="png")
-->항목이 많아도 color에 rainbow를 사용할수 있음
f_days <- round(apple/sum(apple) *100,1)
f_labels <-paste(f_days,"%",sep="")
pie(apple,main="Apple",col=rainbow(length(apple)),cex=0.8,labels=f_labels)
legend(1,1,c("월","화","수","목","금"),cex=0.8,fill=rainbow(length(apple)))
savePlot("2-1-5.png",type="png")
-->범례 사용예제
f_day2 <- c("월","화","수","목","금")
f_labels <- paste(f_day2,"\n",f_days,"%")
pie(apple,main="Apple",col=rainbow(length(apple)),cex=0.8,labels=f_labels)
savePlot("2-1-6.png",type="png")
-->범례 사용하지않고 바로 table에 붙힌다
2-1-6 상자 차트 (주식 봉차트) boxplot()
-->최대,최소,평균을 한자리에 모두 올린다
-->주식,기온변화,강수량 분석에 사용
apple <- c(10,12,15,11,20)
banana <- c(6,7,15,8,9)
peach <- c(11,20,15,18,13)
-->각 object 를 벡터로 생성한다
boxplot(apple,banana,peach)
-->boxplot함수가 각 object를 분석해서 object의 최대 최소 평균을 박스에 그리는것
savePlot("2-1-7.png",type="png")
boxplot argument list
col - 박스 내부 색지정
names - 막대의 라벨을 지정할 문자백터 생성
range - 박스의 끝에서 수염까지 길이 지정
width - 박스폭 지정
notch - true 로 지정하면 박스의 허리가 얇아짐
horizontal - 상자를 수평으로 그림 , 아래부터 박스생성
boxplot(apple,banana,peach,col=c("yellow","cyan","green"),names=c("apple","banana","peach"),horizontal=T)
savePlot("2-1-8.png",type="png")
2-1-7 sunflowerplot()
-->한점 주위에 여러개의 데이터가 있을때사용한다
x <- rnorm(100)
-->random 으로 100개의 수를 생성하는것
y <- data.frame(round(x,d=1),round(x,d=1))
sunflowerplot(y)
savePlot("2-1-9.png",type="png")
2-1-7 persp() - 3차원 데이터 그리기 함수
-->x,y,z 를 이용해 3차원 제도를 그린다
x <-seq(-10,10,length(10))
y <-x
f <-function (x,y) {
r <-sqrt(x^2+y^2); 10*sin(r) /r}
z <- outer(x,y,f)
persp(x,y,z,theta=30,phi=30,expand=0.5,col=rainbow(50),border=NA)
savePlot("2-1-10.png",type="png")
2-1-4 히스토그램 hist()
특정 데이터의 빈도를 계산해 막대모양으로 나타내는기능 , hist() 함수를 사용함
b <- c(1,1,1,2,2,3)
hist(b)
savePlot("2-1-1.png",type="png")
2-1-5 파이차트 pie()
전체원을 나눠서 구분하는 파이차트 구성
c <- c(100,200,300,400,500)
pie(c)
savePlot("2-1-2.png",type="png")
차트 argument 목록
angle,demsoty,col - pie부분을 구성하는 각도, 수, 색상지정
labels - pie의 각부분에 이름을 지정한다
radius - 원형의 크기 지정
clockwise - 시계방향 , 반시계방향 지정
init.angle - 시작되는 각도 지정
apple <- c(260,300,250,280,310)
pie(apple)
savePlot("2-1-3.png",type="png")
pie(apple,init.angle=90,col=rainbow(length(apple)),labels=c("월","화","수","목","금"))
savePlot("2-1-4.png",type="png")
-->항목이 많아도 color에 rainbow를 사용할수 있음
f_days <- round(apple/sum(apple) *100,1)
f_labels <-paste(f_days,"%",sep="")
pie(apple,main="Apple",col=rainbow(length(apple)),cex=0.8,labels=f_labels)
legend(1,1,c("월","화","수","목","금"),cex=0.8,fill=rainbow(length(apple)))
savePlot("2-1-5.png",type="png")
-->범례 사용예제
f_day2 <- c("월","화","수","목","금")
f_labels <- paste(f_day2,"\n",f_days,"%")
pie(apple,main="Apple",col=rainbow(length(apple)),cex=0.8,labels=f_labels)
savePlot("2-1-6.png",type="png")
-->범례 사용하지않고 바로 table에 붙힌다
2-1-6 상자 차트 (주식 봉차트) boxplot()
-->최대,최소,평균을 한자리에 모두 올린다
-->주식,기온변화,강수량 분석에 사용
apple <- c(10,12,15,11,20)
banana <- c(6,7,15,8,9)
peach <- c(11,20,15,18,13)
-->각 object 를 벡터로 생성한다
boxplot(apple,banana,peach)
-->boxplot함수가 각 object를 분석해서 object의 최대 최소 평균을 박스에 그리는것
savePlot("2-1-7.png",type="png")
boxplot argument list
col - 박스 내부 색지정
names - 막대의 라벨을 지정할 문자백터 생성
range - 박스의 끝에서 수염까지 길이 지정
width - 박스폭 지정
notch - true 로 지정하면 박스의 허리가 얇아짐
horizontal - 상자를 수평으로 그림 , 아래부터 박스생성
boxplot(apple,banana,peach,col=c("yellow","cyan","green"),names=c("apple","banana","peach"),horizontal=T)
savePlot("2-1-8.png",type="png")
2-1-7 sunflowerplot()
-->한점 주위에 여러개의 데이터가 있을때사용한다
x <- rnorm(100)
-->random 으로 100개의 수를 생성하는것
y <- data.frame(round(x,d=1),round(x,d=1))
sunflowerplot(y)
savePlot("2-1-9.png",type="png")
2-1-7 persp() - 3차원 데이터 그리기 함수
-->x,y,z 를 이용해 3차원 제도를 그린다
x <-seq(-10,10,length(10))
y <-x
f <-function (x,y) {
r <-sqrt(x^2+y^2); 10*sin(r) /r}
z <- outer(x,y,f)
persp(x,y,z,theta=30,phi=30,expand=0.5,col=rainbow(50),border=NA)
savePlot("2-1-10.png",type="png")
2019년 8월 19일 월요일
Chp2. GRAPH - 2
본론
2-1-1 고수준 작도함수
mfrow 를 이용한 한화면에 여러 그래프 그리기
par (mfrow = c(nr,nc))
-->nr 행의수 nc 열의 수직선
m <- par (mfrow=c(1,3))
apple <- c(10,12,14,16,18,20)
banana <-c(11,13,15,17,19,21)
berry <-c(9,12,14,16,15,19)
plot(apple,type="o")
plot(banana,type="s")
plot(berry,type="o")
savePlot("2-1-1-11.png",type="png")
sin cos 그래프 중첩해서 그리기
plot(sin,-pi,pi,xlab="",lty=2)
par(new=T)
plot(cos,-pi,pi,xlab="x",ylab="y")
plot(sin,-pi,pi,xlab="x",ylab="y",lty=2)
plot(cos,-pi,pi,add=T)
savePlot("2-1-1-12.png",type="png")
apple <-c(260,300,250,280,310)
peach <-c(180,200,210,190,170)
berry <-c(210,250,260,210,220)
plot(apple,type="o",col="red",ylim=c(0,400),axes=F,ann=F)
axis(1,at=1:6,lab=c("월","화","수","목","금","토"))
axis(2,ylim=c(0,400))
title(main="Fruits",col.main="red",font.main=4)
title(xlab="요일",col.lab="black")
title(ylab="가격",col.lab="blue")
lines(berry,type="o",pch=21,col="green",lty=2)
lines(peach,type="o",pch=22,col="blue",lty=2)
savePlot("2-1-1-13.png",type="png")
2-1-2 barplot() 막대그래프
x <- matrix(c(0.3,0.7,0.8,0.2),2,2)
barplot(x,beside=T,names=1:2)
savePlot("2-1-1-14.png",type="png")
x <- matrix(c(0.3,0.7,0.8,0.2),2,2)
barplot(x,horiz=T,names=1:2)
savePlot("2-1-1-15.png",type="png")
apple <-c(260,300,250,280,310)
peach <-c(180,200,210,190,170)
berry <-c(210,250,260,210,220)
barplot(apple,main="Fruits",xlab="요일",ylab="수량",names.arg=c("월","화","수","목","금"),border="red",density=c(10,20,30,40,50))
savePlot("2-1-1-16.png",type="png")
fruits10 <-read.table("fruits10.txt",header=T)
> fruits10 <-read.table("fruits10",header=T)
> fruits10
apple peach berry
1 260 180 210
2 300 200 250
3 250 210 260
4 280 190 210
5 310 170 220
barplot(as.matrix(fruits10),main="fruits",ylab="수량",beside=T,col=rainbow(5),ylim=(c(0,400)))
savePlot("2-1-1-17.png",type="png")
barplot(t(fruits10),main="fruits",ylab="판매량",ylim=c(0,1000),col=rainbow(3),space=0.1,cex.axis=0.8,las=1,names.arg=c("월","화","수","목","금"),cex=0.8)
legend(4.5,1000,names(fruits10),cex=0.8,fill=rainbow(3))
savePlot("2-1-1-18.png",type="png")
apple의값이 300보다 크거나 같은경우만 빨간색으로
colors <-c()
for(i in 1:length(apple)){
if(apple[i] >= 300){
colors <-c(colors,"red") }
else {
colors <-c(colors,"green")}
}
barplot(apple,main="Apple",xlab="요일",ylab="수량",names.arg=c("월","화","수","목","금"),col=colors)
savePlot("2-1-1-19.png",type="png")
2-1-3 Dot chart() 점으로 표시하는것
x <-c(1:10)
dotchart(x,labels=paste("Test",1:10))
savePlot("2-1-1-20.png",type="png")
2-1-1 고수준 작도함수
mfrow 를 이용한 한화면에 여러 그래프 그리기
par (mfrow = c(nr,nc))
-->nr 행의수 nc 열의 수직선
m <- par (mfrow=c(1,3))
apple <- c(10,12,14,16,18,20)
banana <-c(11,13,15,17,19,21)
berry <-c(9,12,14,16,15,19)
plot(apple,type="o")
plot(banana,type="s")
plot(berry,type="o")
savePlot("2-1-1-11.png",type="png")
sin cos 그래프 중첩해서 그리기
plot(sin,-pi,pi,xlab="",lty=2)
par(new=T)
plot(cos,-pi,pi,xlab="x",ylab="y")
plot(sin,-pi,pi,xlab="x",ylab="y",lty=2)
plot(cos,-pi,pi,add=T)
savePlot("2-1-1-12.png",type="png")
apple <-c(260,300,250,280,310)
peach <-c(180,200,210,190,170)
berry <-c(210,250,260,210,220)
plot(apple,type="o",col="red",ylim=c(0,400),axes=F,ann=F)
axis(1,at=1:6,lab=c("월","화","수","목","금","토"))
axis(2,ylim=c(0,400))
title(main="Fruits",col.main="red",font.main=4)
title(xlab="요일",col.lab="black")
title(ylab="가격",col.lab="blue")
lines(berry,type="o",pch=21,col="green",lty=2)
lines(peach,type="o",pch=22,col="blue",lty=2)
savePlot("2-1-1-13.png",type="png")
2-1-2 barplot() 막대그래프
x <- matrix(c(0.3,0.7,0.8,0.2),2,2)
barplot(x,beside=T,names=1:2)
savePlot("2-1-1-14.png",type="png")
x <- matrix(c(0.3,0.7,0.8,0.2),2,2)
barplot(x,horiz=T,names=1:2)
savePlot("2-1-1-15.png",type="png")
apple <-c(260,300,250,280,310)
peach <-c(180,200,210,190,170)
berry <-c(210,250,260,210,220)
barplot(apple,main="Fruits",xlab="요일",ylab="수량",names.arg=c("월","화","수","목","금"),border="red",density=c(10,20,30,40,50))
savePlot("2-1-1-16.png",type="png")
fruits10 <-read.table("fruits10.txt",header=T)
> fruits10 <-read.table("fruits10",header=T)
> fruits10
apple peach berry
1 260 180 210
2 300 200 250
3 250 210 260
4 280 190 210
5 310 170 220
barplot(as.matrix(fruits10),main="fruits",ylab="수량",beside=T,col=rainbow(5),ylim=(c(0,400)))
savePlot("2-1-1-17.png",type="png")
barplot(t(fruits10),main="fruits",ylab="판매량",ylim=c(0,1000),col=rainbow(3),space=0.1,cex.axis=0.8,las=1,names.arg=c("월","화","수","목","금"),cex=0.8)
legend(4.5,1000,names(fruits10),cex=0.8,fill=rainbow(3))
savePlot("2-1-1-18.png",type="png")
apple의값이 300보다 크거나 같은경우만 빨간색으로
colors <-c()
for(i in 1:length(apple)){
if(apple[i] >= 300){
colors <-c(colors,"red") }
else {
colors <-c(colors,"green")}
}
barplot(apple,main="Apple",xlab="요일",ylab="수량",names.arg=c("월","화","수","목","금"),col=colors)
savePlot("2-1-1-19.png",type="png")
2-1-3 Dot chart() 점으로 표시하는것
x <-c(1:10)
dotchart(x,labels=paste("Test",1:10))
savePlot("2-1-1-20.png",type="png")
Chp2. GRAPH - 1
본론
2-1 R을 이용한 그래프 작성
2-1-1 고수준 작도함수
1)plot 함수
plot(y축 data,옵션) - x축을 지정하지않으면 자동으로 1,2,3,4,5로 입력된다
plot(x축data , y축data,옵션)
y <-c(1,2,3,4,5)
plot(y)
savePlot("2-1-1-1.png",type="png")
y <-c(1,1,2,2,3,3)
plot(y)
savePlot("2-1-1-2.png",type="png")
x,y모두 지정후 그래프 그리기
x<-c(1:5)
y<-c(6:10)
plot(x,y)
savePlot("2-1-1-3.png",type="png")
plot 함수의 각축의 최대값 지정하기 (xlim,ylim)
x<-1:10
y<-1:10
plot(x,y,xlim=c(1,15)
savePlot("2-1-1-4.png",type="png")
x<-1:10
y<-1:10
plot(x,y,xlim=c(15,0))
savePlot("2-1-1-5.png",type="png")
그래프의 제목삽입 = main argument 지정하기
x<-1:10
y<-1:10
plot(x,y,xlim=c(1,20),main="Sample")
savePlot("2-1-1-6.png",type="png")
plot 함수 옵션
main="메인 제목"
main="메인 제목" 메인 제목설정
sub="서브 제목" 서브제목
xlab="문자" , ylab="문자" 각 축에 문자열 지정
ann=F 각 축의 제목 지정X
tmag=2 제목에 사용되는 문자의 확대율
axes=F 축 표시 X
axis 축을 사용자 지정값으로
그래프 타입
type="p" 점그래프(기본)
type="l" 선그래프
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개의 대쉬
ex)각종 Graph 테스트
apple <-c(260,300,250,280,310)
peach <-c(180,200,210,190,170)
berry <-c(210,250,260,210,220)
plot(apple,type="o",col="red",ylim=c(0,400),axes=F,ann=F)
savePlot("2-1-1-7.png",type="png")
plot(apple,type="o",col="red",ylim=c(0,400),axes=F,ann=F)
axis(1,at=1:5,lab=c("월","화","수","목","금"))
savePlot("2-1-1-8.png",type="png")
axis(2,ylim=c(0,400))
savePlot("2-1-1-9.png",type="png")
title(main="Fruits",col.main="red",font.main=4)
title(xlab="요일",col.lab="black")
title(ylab="가격",col.lab="blue")
savePlot("2-1-1-10.png",type="png")
2-1 R을 이용한 그래프 작성
2-1-1 고수준 작도함수
1)plot 함수
plot(y축 data,옵션) - x축을 지정하지않으면 자동으로 1,2,3,4,5로 입력된다
plot(x축data , y축data,옵션)
y <-c(1,2,3,4,5)
plot(y)
savePlot("2-1-1-1.png",type="png")
y <-c(1,1,2,2,3,3)
plot(y)
savePlot("2-1-1-2.png",type="png")
x,y모두 지정후 그래프 그리기
x<-c(1:5)
y<-c(6:10)
plot(x,y)
savePlot("2-1-1-3.png",type="png")
plot 함수의 각축의 최대값 지정하기 (xlim,ylim)
x<-1:10
y<-1:10
plot(x,y,xlim=c(1,15)
savePlot("2-1-1-4.png",type="png")
x<-1:10
y<-1:10
plot(x,y,xlim=c(15,0))
savePlot("2-1-1-5.png",type="png")
그래프의 제목삽입 = main argument 지정하기
x<-1:10
y<-1:10
plot(x,y,xlim=c(1,20),main="Sample")
savePlot("2-1-1-6.png",type="png")
plot 함수 옵션
main="메인 제목"
main="메인 제목" 메인 제목설정
sub="서브 제목" 서브제목
xlab="문자" , ylab="문자" 각 축에 문자열 지정
ann=F 각 축의 제목 지정X
tmag=2 제목에 사용되는 문자의 확대율
axes=F 축 표시 X
axis 축을 사용자 지정값으로
그래프 타입
type="p" 점그래프(기본)
type="l" 선그래프
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개의 대쉬
ex)각종 Graph 테스트
apple <-c(260,300,250,280,310)
peach <-c(180,200,210,190,170)
berry <-c(210,250,260,210,220)
plot(apple,type="o",col="red",ylim=c(0,400),axes=F,ann=F)
savePlot("2-1-1-7.png",type="png")
plot(apple,type="o",col="red",ylim=c(0,400),axes=F,ann=F)
axis(1,at=1:5,lab=c("월","화","수","목","금"))
savePlot("2-1-1-8.png",type="png")
axis(2,ylim=c(0,400))
savePlot("2-1-1-9.png",type="png")
title(main="Fruits",col.main="red",font.main=4)
title(xlab="요일",col.lab="black")
title(ylab="가격",col.lab="blue")
savePlot("2-1-1-10.png",type="png")
피드 구독하기:
글 (Atom)















































