R-Generating graphics(step 5)

  1. 云栖社区>
  2. 博客>
  3. 正文

R-Generating graphics(step 5)

fan2xw 2019-03-29 11:16:36 浏览502
展开阅读全文

[I]symbols and lines

> plot(A,B,type="b",lty=3,lwd=3,pch=15,cex=2)
Parameter function
pch plot point
cex symbols size,default=1
lty lines type
lwd lines weight,default=1

pch #plot point
cex #symbols size,default=1
lty #lines type
lwd #lines weight,default=1

r_plot_pch_symbols_points_in_r

Specially,symbol 21~25,can custom border color(by col=) and fill color(by bg=)

lty

[II]color

#Create a color match
> install.packages("RColorBrewer")
> library(RColorBrewer)
> n<-9
> mycolors<-brewer.pal(n,"Set1")
> barplot(rep(1,n),col=mycolors)
#multi-level grayscale
> n<-9
> mycolors<-rainbow(n)
> pie(rep(1,n),labels=mycolors,col=mycolors)
> mygrays<-gray(0:n/n)
> mygrays<-gray(0:n/n)
> pie(rep(1,n),labels=mygrays,col=mygrays)
Parameter function
col plot color
col.axis axis scale text color
col.lab axis label color
col.main main title color
col.sub sub title color
fg foreground
bg background
Color Number Hex RGB
"white" 1 "#FFFFFF" rgb(1,1,1)
"black" 24 "#000000" rgb(0,0,0)
"bule" 26 "#0000FF" rgb(0,0,255)
"brown" 32 "#A52A2A" rgb(165,42,42)
"orange" 498 "#FF6100" rgb(255,215,0)
"pink" 536 "#FFC0CB" rgb(255,192,203)
"purpel" 547 "#800080" rgb(128,0,128
"red" 552 "#FF0000" rgb(255,0,0)
"yellow" 652 "#FFFF00" rgb(255,255,0)

[III]text

> opar<-par(no.readonly=TRUE)
> par(font.lab=3,cex.lab=1.5,font.main=4,cex.main=2)
> par(opar)
Parameter function
cex text size
cex.axis axis scale size
cex.lab axis label size
cex.main main title size
cex.sub sub title size
Parameter function
font 1=Normal,2=Bold,3=Italic,4=Bold Italic,5=Symbol Font
font.axis axis scale font
font.lab axis label font
font.main main title font
font.sub sub title font
pa font value(1pound=1/72inch),font vale=ps*cex
family drawing text,value=serif/sans/mono

[IV]graphic size and boundary size

> opar<-par(no.readonly=TRUE)
> par(pin=c(4,3),mai=c(1,5,1,2))
> par(opar)
Parameter function
pin graphic size:width and height(inch)
mai boundary size:up down left right(inch)
mar boundary size:up down left right(British cent),default=c(5,4,4,2)+0.1

[V]title

> title(main="My Title",col.main="red",
+       sub="My Subtitle",col.sub="blue",
+       xlab="My X label",ylab="My Y label",
+       col.lab="green",cex.lab=0.75)

[VI]axis

> axis(4,at=z,labels=round(z,digits=2),col.axis="blue",las=2,cex.axis=0,7,tck=-0.1)
Parameter function
side the relative position of the axis in the graph,1=down,2=left,3=up,4=right
at scale position
labels scale line text label
pos intersecting another axis position value
lty lines type
col lines and scale lines color
las 0=label is parallel to the coordinate axis,2=label is perpendicular to the axis
tck 0=disable scale,1=plot grid lines,default=-0.01

[VII]reference line

> abline(h=c(1,5,7),v=seq(1,10,2),lty=2,col="bule")

[VIII]legend

> legend("top;eft",inset=.0.5,title="Music Type",c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","bule"))
Parameter function
location legend positon,bottom,bottomleft,left,topleft,top,topright,right,bottomright,center
title legend title string
legend legend label string vector

[IX]text annotation

> text(age,ID,row.names(singerdata),cex=0.6,pos=4,col="red")
Parameter function
location text position
pos relative position of text,1=down,2=left,3=up,4=right,offset can be set
side text side,1=down,2=left,3=up,4=right,adj=0:align left bottom,adj=1:align right bottom

math annotation

operation

[X]graphics combination

#par()
> par(mfrow=c(2,2))
#layout()
> layout(matrix(c(1,1,2,3),2,2,byrow=TRUE),widths=c(3,1),heights=c(1,2))

[XI]ggplot2

1.specify the type of graph with a geometry function

Function Add Option
geom_bar() bar chart color,fill,alpha
geom_boxplot() box plot color,fill,alpha,notch,width
geom_density() density plot color,fill,alpha,linetype
geom_histogram() histogram color,fill,alpha,linetype,binwidth
geom_hline() horizontal line
geom_jitter() jitter point color,size,alpha,shape
geom_line() line plot colorvalpha,linetype,size
geom_point() scatter plot color,alpha,shape,size
geom_rug() carpet plot color,side
geom_smooth() curve fitting method,formula,color,fill,linetype,size
geom_text() text annotation reference to "help"
geom_violin() violin picture color,fill,alpha,linetype
geom_vline() perpendicular color,alpha,linetype,size

2.grouping

> data(Salaries,package="car")
> library(ggplot2)
> ggplot(data=Salaries,aes(x=salary,fill=rank)) + geom_density(alpha=,3)

> ggplot(Salaries,aes(x=yrs,.since.phd,y=salary,color=rank,shape=sex))+geom_point()
> ggplot(Salaries,aes(x=rank,fill=sex)) + geom_bar(position="stack")+ labs(title='position="stack"')
> ggplot(Salaries,aes(x=rank,fill=sex)) + geom_bar(position="dodge")+ labs(title='position="dodge"')
> ggplot(Salaries,aes(x=rank,fill=sex)) + geom_bar(position="fill")+ labs(title='position="fill"')
> ggplot(Salaries,aes(x=rank,fill=sex)) + geom_bar()
> ggplot(Salaries,aes(x=rank)) + geom_bar(fill="red")
> ggplot(Salaries,aes(x=rank,fill="red‘’)) + geom_bar()

3.characterize

Grammar Result
facet_wrap(~var,ncol=n) arrange each var horizontally into an independent map of n columns
facet_wrap(~var,nrow=n) arrange each var horizontally into an independent map of n rows
facet_grid(rowvar~colvar) independent plot of rowvar and colvar
facet_grid(rowvar~.) independent plot of each rowvar level,configured as a single column
facet_grid(.~colvar) independent plot of each column level,configured as a single row

4.add a smooth curve

Option Description
method= default=smooth;lm,smooth,rlm,gam
formula= y~x(default),y~log(x),y~poly(x,n),y~ns(x,n)
se draw a confidence interval,default=TRUE
level confidence interval level used,default=95%
fullrange default=FALSE:just data;TRUE:the fit should cover the full picture

5.appearance

(1)axis

Functions Option
scale_x_continuous()&scale_y_continuous break,label,limits,=specified
scale_x_discrete()&scale_y_discrete() break,label,limits,=level
coord_flip() reverse the x and the y axes

(2)legend

> data(Salaries,package="car")
> library(ggplot2)
> ggplot(data=Salaries,aes(x=rank,y=salary,fill=sex)) + geom_boxplot() +
            scale_x_discrete(breaks=c("AsstProf"),"AssocProf","Porf"),
            labels=c("Assistant\nProfessor","Associate\nProfessor","Full\nProfessor"))+
            scale_y_continuous(break=c(50000,100000,150000,200000),
            lables=c("$50K","$100K","$150K","$200k"))+
            labs(title="Faculty Salary by Rank and Gender",x="",y="",fill="Gender")+
            theme(legend.position=c(.1,.8))

(3)ruler

> ggplot(mtcars,aes(x=wt,y=mpg,size=disp))+geom_point(shape=21,color="black",fill="cornsilk")+
            labs(x="Weight",y="Miles Per Gallon",title="Bubble Chart",size="Engine\nDisplacement")
> data(Salaries,package="car")
> ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary,color=rank))+
             scale_color_manual(values=c("orange","olivedrab","navy"))+geom_point(size=2)
> ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary,color=rank))+
             scale_color_brewer(palette="Set1")+geom_point(size=2)
> library(RColorBrewer)
> display.brewer.all()

(4)theme

> data(Salaries,package="car")
> library(ggplot2)
> mytheme<-theme(plot.title=element_text(face="bold.italic",size="14",color="brown"),
                            axis.title=element_text(face="bold.italic",size=10,color="brown"),
                            axis.text=element_text(face="bold",size=9,color="darkblue"),
                            panel.background=element_rect(fill="white",color="darkblue"),
                            panel.grid.major.y=element_line(color="grey",linetype=1),
                            panel.grid.minor.y=element_line(color="grey",linetype=2),
                            panel.grid.minor.x=element_blank(),legend.position="top")

> ggplot(Salaries,aes(x=rank,y=salary,fill=sex))+geom_boxplot()+
            labs(title="Salary by Rank and Sex",x='Rank",y="Salary")+mytheme

(5)multiple map

> data(Salaries,package="car")
> library(ggplot2)
> p1<-ggplot(data=Salaries,aes(x=rank))+geom_bar()
> p2<-ggplot(data=Salaries,aes(x=sex))+geom_bar()
> p3<-ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary))+geom_point()
> library(gridExtra)
> grid.arrange(p1,p2,p3,ncol=3)

5.save

> myplot<-ggplot(data=mtcars,aes(x=mpg))+geom_histogtam()
> ggsave(file="mygraph.png",plot=myplot,withd=5,height=4)

> ggplot(data=mtcars,aes(x=mpg))+geom_histogram()
> ggsave(file="mygraph.pdf")

END!

网友评论

登录后评论
0/500
评论
fan2xw
+ 关注