昨晚熬夜整理的超级R绘图技巧——USing ggplot(下)

# 加载需要的包 library(tidyverse) library(gcookbook)

21.使用facet_grid(x~.)分页

 ggplot(iris,aes(Sepal.Length))+  geom_histogram(fill='lightblue',colour='red')+  facet_grid(Species~.)

22.三个因素相互覆盖的柱形图

ggplot(iris,aes(Sepal.Length,fill=Species))+ geom_histogram(bins=30,position = 'identity',alpha=0.5)

23.柱形图密度图结合

 ggplot(faithful,aes(waiting,..density..))+  geom_histogram(fill='cornsilk',colour='grey60',size=2)+  geom_density()
# 将x轴线限制在一个范围 ggplot(faithful,aes(waiting,..density..))+ geom_histogram(fill='cornsilk',colour='grey60',size=2)+ geom_density()+ xlim(35,105)

24.频率多变图geom_freqpoly

 ggplot(faithful,aes(waiting))+  geom_freqpoly()
# 进一步更改 ggplot(faithful,aes(waiting))+ geom_freqpoly(binwidth=4)

25.outlier.size设置箱型图异常值的大小和形状

 ggplot(iris,aes(x=factor(Species),y=Sepal.Length))+  geom_boxplot(outlier.size = 5,outlier.shape = 21)

26.notch增加凹凸口

ggplot(iris,aes(x=factor(Species),y=Sepal.Length))+ geom_boxplot(notch = TRUE)

27.点线柱子结合,做个点线柱子图试试

ggplot(BOD,aes(Time,demand))+  geom_bar(stat = 'identity',fill='lightblue')+  geom_line(size=2,colour='red')+  geom_point(size=5,colour='blue')

28.scale_y_log10()对y轴进行log化,使得y轴的数据相差减小

ggplot(worldpop,aes(Year,Population))+ geom_line()+ geom_point()+ scale_y_log10()

29.geom_ribbon画置信区间

ggplot(climate,aes(Year,Anomaly10y))+  geom_ribbon(aes(ymin=Anomaly10y-Unc10y,          ymax=Anomaly10y+Unc10y))+  geom_line()+  xlim(1800,1850)

30.采用虚线画置信区间

ggplot(climate,aes(Year,Anomaly10y))+ geom_line(aes(y=Anomaly10y-Unc10y),colour='grey50',linetype='dotted')+ geom_line(aes(y=Anomaly10y+Unc10y),colour='grey50',linetype='dotted')+ geom_line()+ xlim(1800,1850)

31.geom_hline等给图形添加线

ggplot(mtcars,aes(mpg,cyl))+  geom_point()+  geom_hline(yintercept = 5,size=2)+  geom_vline(xintercept = 25,size=2)

32.geom_abline画斜线

ggplot(mtcars,aes(mpg,cyl))+ geom_point()+ geom_abline(intercept=1,slope =0.3)

33.通过annotate函数给图中增加箭头

ggplot(climate,aes(Year,Anomaly10y))+  geom_line()+  annotate('segment',x=1850,xend = 1900,      y=0,yend=-0.1,colour='blue',      size=2,arrow=arrow())

34.使用annotate的rect给图形添加阴影

ggplot(climate,aes(Year,Anomaly10y))+ geom_line()+ annotate('rect',xmin = 1850,xmax = 1900, ymin=-0.75,ymax = 0,fill='blue',alpha=.3)

35.直接使用ggtitle添加标题

ggplot(climate,aes(Year,Anomaly10y))+  geom_line()+  ggtitle('这里是标题')

36.Theme设置图形的网格线

# panel.grid.major = element_line()修改网格主线 # panel.grid.minor = element_line()修改网格次线 # panel.background = element_rect()修改网格背景颜色 #panel.border = element_rect()修改网格边线 # element_line()适合修改线 # element_rect()适合修改矩形 ggplot(climate,aes(Year,Anomaly10y))+ geom_line()+ theme(panel.grid.major = element_line(colour='red'), panel.grid.minor = element_line(colour='red',linetype = 'dashed',size=0.2), panel.background = element_rect(fill='lightblue'), panel.border = element_rect(colour = 'blue',fill = NA,size=2))

37.Theme修改每个标题

# axis.title.x = element_text()修改x轴的标题 # axis.text.x = element_text()修改x轴 # plot.title = element_text()修改ggtitle的字体格式 ggplot(climate,aes(Year,Anomaly10y))+  geom_line()+  ggtitle('这里是标题')+  theme(   axis.title.x = element_text(colour = 'red',size=24),   axis.text.x = element_text(colour = 'blue',size=22),   axis.title.y=element_text(colour='red',size=24),   axis.text.y=element_text(colour = 'blue',size=22),   plot.title = element_text(colour='red',size=20,face = 'bold'))

38.通过theme修改标签

p38 <- ggplot(cabbage_exp,aes(Date,Weight,fill=Cultivar))+ geom_bar(stat = 'identity',position ='dodge')
# legend.background = element_rect()修改legend的背景 # legend.title = element_text()修改legend的标题 # legend.text = element_text()修改legend字体颜色 # legend.key=element_rect()修改legend的外边框 p38+theme(  legend.background = element_rect(fill='grey85',colour = 'red',size=1),  legend.title = element_text(colour='blue',face = 'bold',size=14),  legend.text = element_text(colour = 'red',size=18),  legend.key=element_rect(colour = 'red',size=0.25))
# 去除legend的方法 p38+theme(legend.position = 'none')
# 修改legend的位置,将其放在顶端 p38+theme(legend.position = 'top')
#使用坐标固定legend的位置 p38+theme(legend.position = c(.85,.2))+ theme(legend.background =element_rect(fill = 'lightblue',colour='black',size=1))
# 修改legend的名称 p38+labs(fill='这是legend的名称')
# 修改legend的label的名字 p38+scale_fill_discrete(labels=c('第一','第二'))
(0)

相关推荐