ggplot2包基本绘图(2)-柱状图与条形图

ggplot2包是目前R语言数据可视化的主力包,本文尝试将常见的数据可视化图(excel)中的图以ggplot2包的函数加以呈现。数据来源主要为tidyverse包中的mpg数据集

柱状图

ggplot2中柱状图有geom_bargeom_col两种形式,前者默认是绘制频数(样本量),后者才是我们实际使用的数据映射成柱子高度。geom_bar如果绘制实际数据映射,需要添加**stat=“identity”**统计变换

library(tidyverse)
  dat<-aggregate(cbind(cty)~drv*year,mpg,mean) #求平均值
   p1<- ggplot(dat,aes(x=year,y=cty,fill=drv))+geom_col( position="dodge") #平铺
   p2<- ggplot(dat,aes(x=year,y=cty,fill=drv))+geom_col( position="stack") #堆叠
   p3<- ggplot(dat,aes(x=year,y=cty,fill=drv))+geom_col( position="fill") #百分比堆积
#一页多图
  library(grid)
  grid.newpage()
  pushViewport(viewport(layout = grid.layout(1, 3)))
  vplayout = function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
  print(p1, vp = vplayout(1, 1))
  print(p2, vp = vplayout(1, 2))
  print(p3, vp = vplayout(1, 3))  

ggplot2包基本绘图(2)-柱状图与条形图_第1张图片
有时候需要更改柱子方向,即bar为水平方向,在ggplot2中可以采用转置坐标轴轻松实现

ggplot(dat,aes(x=year,y=cty,fill=drv))+geom_col( position="dodge")+coord_flip()

ggplot2包基本绘图(2)-柱状图与条形图_第2张图片

你可能感兴趣的:(R)