ggplot2 学习

theme(axis.text.x=element_text(angle=90, size=8, vjust=0.8))
旋转x轴标题

theme(plot.margin = unit(c(0.1, 0, 0, 0),"cm"))
为图片设置margin, 顺序遵循 上右下左

library(gridExtra)
grid.arrange(g1, g2, g3, g4, main, sub, left)

合并多个ggplot2的图片并可以设置main, sub, left等标题。

标题可以通过textGrob设置格式
main <- textGrob('title', gp=gpar(cex = 1.2), vjust = 1)

条形图实例,原始数据并没有提供

g <- ggplot(data = data, aes_string(x = colname)) +  # colname 为字符串,可以用aes_string() 进行转换
  geom_bar(aes(fill = factor(flag)), # 用到data中的数据,建立映射关系均要用到aes,fill表示填充,后面会设置具体的填充颜色,如不设置会采用系统默认,凡是表示分组都要转换为factor
            colour="white",  # colour设置边框的颜色, width 设置
            stat='bin',      # stat=‘bin’ 表示系统自行计算频数作为y轴, stat = 'identity'表示使用自己的数据作为y轴 
            #width = 0, # 两个bar的间隔,当x轴为连续数据时不起作用
            binwidth = 0.3,  # 区段的长度, 计算该区段的频数
            na.rm = T        # 清除空值
            )  

g1 <- g +
  theme_bw() +  #设置主题, 将背景作为白色
  scale_fill_manual(values = c('1' = color1, '0' = color2), name = 'value', labels = c('<=-0.3 & >=0.3','>-0.3 & <0.3')) + # 设置填充的方式,manual表示手动填充, 这里的‘1’和‘0’表示`fill=factor(flag)`中的levels, 那么为legend title, label 为legend标签
  theme(panel.grid.major = element_blank(), # 通过设置主题将 主(major)次(minor)网格线去掉
    panel.grid.minor = element_blank(),
    legend.position=c(0.85, 0.85))+      # 设置legend的位置,c(0,0)表示左下角, c(1,1)表示右上角
    # scale_x_continuous 改为 coord_cartesian 效果更好
  # scale_x_continuous(limits= c(-8, 3), # 设置x轴, continuous表示数据为连续型,limits表示数据的范围
  # breaks = seq(-8, 3, 1.5), # breaks 表示刻度的表示
  # expand = c(-0.05, 0))+ # 采用 stat=‘bin’会发现 左边,底边图不能对齐到轴线,采用expand可以进行设置,x轴设置了c(-0.05, 0),y轴设置了c(0, 0)这是做出的尝试, 并没有深究其原因
  # scale_y_continuous(limits = c(0, 1500), expand = c(0, 0)) + # 同 scale_x_continuous
  coord_cartesian(xlim = c(-8, 3), ylim = c(0, 1500))+
  xlab(title)+    # 设置x轴的标题
  ylab('number of molecules')  + # y轴的标题
  ggtitle('Distribution') + # 大标题
  theme( axis.title = element_text(size= 18),  # 设置轴标题,可以细致到 axis.title.x, axis.title.y
  axis.text = element_text(size = 14),      # 设置轴刻度
  legend.title = element_text(size = 12),   # 设置图例的标题
  legend.text = element_text(size = 12))    # 设置图例的项目

png("plot01.png", width=35, height=20, res=300, units = 'cm')
导出png文件,单位为cm

scale_x_continuous(limits = c(-50, 50))  # 截取[-50, 50]的数据进行作图,改变了原始数据
coord_cartesian(xlim = c(-50, 50))       # 截取[-50, 50]的数据进行展示,原始数据不变

你可能感兴趣的:(R语言,ggplot2)