R语言ggplot2绘图模板和理论

ggplot2会有一些常用的功能,在绘制图形的时候,了解了基本的结构,然后对细节不断的积累,从而在数据的可视化上有一些进步。
常用的功能也做了一些总结
这段代码是2015年的时候写的,一直也没做什么修改,添加一些内容整理成以后的模板参考

ggplot绘图模板代码

##清除工作空间的变量,注意共享代码不要带有这条命令
rm(list=ls())
##加载绘图包
library(ggplot2)
##查看当前路径,并设置工作路径
  getwd();
  setwd("E:/DATA2");
  getwd();
##查看当前工作空间的变量
ls();

##数据--数据属性以及数据框的变换
## 读入数据,如果不在当前工作环境下,要添加数据所在的具体路径
  Data01 <- read.table("type01.txt",sep="\t",header=TRUE,stringsAsFactors=FALSE)
  Data02 <- read.table("type02.txt",sep="\t",header=TRUE,stringsAsFactors=FALSE)

##做基本图--interaction___geom_point()、
  p1 <- ggplot(Data01,aes(x=Type,y=numbers,fill=Type))+geom_bar(stat="identity")
  p2 <- ggplot(Data02,aes(x=relation,y=PATEnumber,fill=type))+geom_bar(stat="identity",width=0.69,position=position_dodge(0.7))
   p2 <- ggplot(AllData,aes(x=Week,y=les,group =year,color=as.factor(year)))+geom_line()


##添加文本注释
  p1 <- p1+annotate("text",x=3,y=4,label="group 1")

###设置图片的字体族、字体大小、颜色,对齐方式、旋转角度
##在Windows下的字体族添加到R语言中,如果采用R自带的字体族可以直接用,这条命名可以注释掉
 windowsFonts(roman=windowsFont("Times New Roman"))

##标题----添加图片标题并设置标题
  p1 <- p1+ggtitle("A")+theme(plot.title=element_text(family="roman",face="bold",colour="black",size=14))
 ##图形主标题main

##坐标轴---添加坐标轴标签
  p1 <- p1+xlab("Poly(A) sites types") + ylab("Numbers of poly(A) sites")       
##坐标轴---修改坐标刻度标签的项目顺序以及标签
  p1 <- p1+scale_fill_discrete(limits=c("TR","5UR","CS","inter","ter","intn"),labels=c("UTR","5UR","CS","inter","ter","intn"))
##坐标轴---设置坐标刻度标签的字体大小等外观
  p1 <- p1+theme(axis.text.x=element_text(family="roman",face="bold",colour="black",size=14,angle=30,hjust=0.5,vjust=1))
 #p1 <- p1+theme(axis.text.x=element_blank())
  p1 <- p1+theme(axis.text.y=element_text(family="roman",face="bold",colour="black",size=14))
##坐标轴---设置坐标轴标签文本的外观
 #p1 <- p1+theme(axis.title.x=element_text(family="roman",face="bold",colour="black",size=14))
  p1 <- p1+theme(axis.title.x=element_blank())
  p1 <- p1+theme(axis.title.y=element_text(family="roman",face="bold",colour="black",size=14))

##图例--修改图例的标签以及位置
  p1 <- p1+labs(fill="Types")
 #p1 <- p1+theme(legend.position=c(0.9,0.8),legend.background=element_rect(fill="white",colour="black"))
  p1 <- p1+theme(legend.position=c(0.88,0.8))
##图例--设置图例标签和图例标题字体,大小等
  p1 <- p1+theme(legend.title=element_text(family="roman",face="bold",colour="black",size=14))
  p1 <- p1+theme(legend.text=element_text(family="roman",face="bold.italic",colour="black",size=12))

##注解--添加独立的图形元素和文本元素
# 添加文本注解---文本类几何对象
p1 <- p1+annotate("text",x=-Inf,y=Inf,label="A",hjust=-.2,vjust=2,family="roman",face="bold",colour="black",size=14)
##添加直线
    geom_hline(yintercept=60)+geom_vline(xintercept=14)
##添加箭头灯
library(grid)
p1 <- p1+annotate("segment",x=1,xend=2,y=2,yend=8,size=14)

##配色--几何对象的颜色--分为映射和设置两种类型,边界色和填充色
##离散型变量和连续型变量所对应的调色板
 p1+scale_fill_grey()
##使用自定义调色板
sf_palette =c("#0072B2","#56B4E9","#999999","#0185D2","#009E73")
p1+scale_fill_manual(values=sf_palette)
##使用已配置好的色板
library(RColorBrewer)
p1+scale_fill_brewer(palette="Accent")

##分面
##facet_grid 网格型
##facet_wrap 封装型

###把两幅图放在一个页面上
##加载grid包
   library(grid)
##清除当前设备或移动到新的page
  grid.newpage()
##用viewport创建视图窗口,并用grid.layout创建布局,同时把布局给视窗
  VP <- viewport(layout = grid.layout(1, 2))
##用pushViewport()命令锁定该图层,使之成为目标区域
  pushViewport(VP)
##创建布局函数,函数参数是放置图形的位置
  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))

##矢量型-位图
###保存图形的位置path,名称以及格式,分辨率dpi<对于位图>,输出尺寸width height
##存一幅图--存两幅图打开基于磁盘的图形设备pdf() png()--关闭图形设备dev.off()
   #ggsave("E:/Data/myplot.tiff",dpi=300,width=8,height=8,unit="cm")
   #ggsave("E:/Data/polyA-TE/TE_polya.tiff",dpi=300,width=3.5,height=3)

理论

数据data--mapping映射--scale标度<水平位置 竖直位置和颜色>
1.几何对象 --geom  几何对象描述 应该用什么对象来对数据进行展示,
        有些几何对象关联了相应的统计变换
        图形属性--颜色,大小形状等
        tile geom  中心位置,长。狂
        rect geom  xmin xmax ymin ymax
        位置变换 stacking 堆叠、dodging 并列、filling填充
2.图形属性--aes--包括颜色形状大小等的一个映射
3.统计变换--stats  identity不做任何调整 
4.坐标系--coord-笛卡尔型坐标系--以及其他坐标系
        coord_trans()--coord_map()--coord_polar()
5.scale--变换--训练--映射  transformation training mapping --默认的标度
    --类型---《位置标度-颜色标度-手动离散标度--同一型标度
    ---命名方案scale开头_图形属性_标度名称
    位置标度--xlim ylim -
        -连续型标度scale_x_continuous、scale_y_continuous scale_x_log10
        scale_x_date()
    颜色标度>hue色相--chromatic彩度-luminance明度
        scale_fill_brewwer()、scale_colour_hue()
        scale_colour_gradient()
    手动离散标度--breaks  limits   scale_linetype()   
6.分面-facet
7.图层  +
分组--在一张图中绘制多个图形--同一图层
8.注解 ----逐个添加  批量添加
9--主题系统--控制着所有非数据展示功能--主题系统对细节进行渲染theme_set()  theme_get() 得到当前主题设置
    --内置主题--theme_gray() theme_bw()  
    --修改内置主题的某些元素函数--四种基础类型 文本text、blank()空白、lines线条、rectangles矩形
        axist.text<axist.text.x>  axis.title strip.text
    使用其他主题

参考:

R Graphics Cookbook  --R数据可视化手册
ggplot2.Elegant Graphics for Data Analysis--ggplot2 数据分析与图形艺术

blogroll

social