## Error in ggplot(data, aesthetics, environment = env): object 'mpg2' not found
p+facet_grid(cyl~drv)
## Error in layout_base(data, rows, drop = drop): At least one layer must contain all variables used for facetting
# Biên p+facet_grid(cyl~drv,margins=T)
## Error in layout_base(data, rows, drop = drop): At least one layer must contain all variables used for facetting
# Thêm màu cho đường smooth qplot(displ,hwy,data=mpg2)+ geom_smooth(aes(colour=drv),method="lm",se=F)+ facet_grid(cyl~drv,margins=T)
## Error in ggplot(data, aesthetics, environment = env): object 'mpg2' not found
Wrap
# Phân phối xếp hạng phim theo thập kỷ library(plyr) movies$decade<-round_any(movies$year,10,floor) qplot(rating,..density..,data=subset(movies,decade>1890), geom="histogram",binwidth=0.5)+ facet_wrap(~decade,ncol=6)
Scales
p<-qplot(cty,hwy,data=mpg)
## Error: ggplot2 doesn't know how to deal with data of class numeric
# scale cố định cho các facet p+facet_wrap(~cyl)
## Error in layout_base(data, vars, drop = drop): At least one layer must contain all variables used for facetting
# scale tự do cho mỗi facet p+facet_wrap(~cyl,scales="free")
## Error in layout_base(data, vars, drop = drop): At least one layer must contain all variables used for facetting
# scale tự do đặc biệt hữu ích khi áp dụng với dữ liệu # chuỗi thời gian với đo độ khác nhau library(reshape2) em<-melt(economics,id="date") qplot(date,value,data=em,geom="line",group=variable)+ facet_grid(variable~.,scale="free_y")
## Error in within(mpg2, {: object 'mpg2' not found
models<-qplot(cty,model,data=mpg3)
## Error in ggplot(data, aesthetics, environment = env): object 'mpg3' not found
models
## Error in eval(expr, envir, enclos): object 'models' not found
# scale tự do, space tự do # opts() chuyển thành theme() # theme_text() chuyển thành element_text() models+facet_grid(manufacturer~.,scales="free", space="free")+theme(strip.text.y=element_text())
## Error in eval(expr, envir, enclos): object 'models' not found
Group và Facet
xmaj<-c(0.3,0.5,1,3,5) xmin<-as.vector(outer(1:10,10^c(-1,0))) ymaj<-c(500,1000,5000,10000) ymin<-as.vector(outer(1:10,10^c(2,3,4))) dplot<-ggplot(subset(diamonds,color%in%c("D","E","G","J")), aes(carat,price,colour=color))+ scale_x_log10(breaks=xmaj,labels=xmaj,minor=xmin)+ scale_y_log10(breaks=ymaj,labels=ymaj,minor=ymin)+ scale_colour_hue(limits=levels(diamonds$color))+ theme(legend.position="none") # Group sẽ giống thế này dplot+geom_point()
# Còn Facet thế này dplot+geom_point()+facet_grid(.~color)
# Đường smooth dplot+geom_smooth(method=lm,se=F,fullrange=T)
# Dodge sẽ ra thế này qplot(color,data=diamonds,geom="bar",fill=cut, position="dodge")
# Còn Facet thế này qplot(cut,data=diamonds,geom="bar",fill=cut)+ facet_grid(.~color)+ theme(axis.text.x=element_text(angle=90,hjust=1,size=8, colour="grey50"))
## Error in ggplot(data, aesthetics, environment = env): object 'mpg2' not found
plot+facet_wrap(~disp_ww,nrow=1)
## Error in layout_base(data, vars, drop = drop): At least one layer must contain all variables used for facetting
plot+facet_wrap(~disp_wn,nrow=1)
## Error in layout_base(data, vars, drop = drop): At least one layer must contain all variables used for facetting
plot+facet_wrap(~disp_nn,nrow=1)
## Error in layout_base(data, vars, drop = drop): At least one layer must contain all variables used for facetting
Hệ tọa độ
Các hệ tọa độ
Ví dụ ban đầu
rect<-data.frame(x=50,y=50) line<-data.frame(x=c(1,200),y=c(100,1)) base<-ggplot(mapping=aes(x,y))+ geom_tile(data=rect,aes(width=50,height=50))+ geom_line(data=line) # Mặc định Đề các base
# Tọa độ cực base+coord_polar("x")
base+coord_polar("y")
# Đảo trục base+coord_flip()
# Biến đổi base+coord_trans(y="log10")
# Đề-các cân bằng base+coord_equal()
Cách biến đổi hệ tọa độ
r_grid<-seq(0,1,length=15) theta_grid<-seq(0,3/2*pi,length=15) extents<-data.frame(r=range(r_grid),theta=range(theta_grid)) base<-ggplot(extents,aes(r,theta))+labs(aspect.ratio=1)+ scale_y_continuous(expression(theta)) # Đường ban đầu base+geom_point(colour="red",size=4)+geom_line()
pts<-data.frame(r=r_grid,theta=theta_grid) # Chia đường thành các điểm base+geom_line()+geom_point(data=pts)
base+geom_point(data=pts)
# Chuyển đổi điểm xlab<-scale_x_continuous(expression(x==r*sin(theta))) ylab<-scale_y_continuous(expression(x==r*cos(theta))) polar<-base%+%pts+aes(x=r*sin(theta),y=r*cos(theta))+ xlab+ylab
## Scale for 'y' is already present. Adding another scale for 'y', which will replace the existing scale.
polar+geom_point()
# Nối điểm thành đường polar+geom_point()+geom_path()
# Kết quả polar+geom_point(data=extents,colour="red",size=4)+geom_path()
Hệ tọa độ Đề-các
Đặt các giới hạn
(p<-qplot(disp,wt,data=mtcars)+geom_smooth())
## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.
p+scale_x_continuous(limits=c(325,500))
## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.