学习小组Day6笔记--尹露茜

把豆豆花花的写的ggplot相关教程整理了一下
并没有完全消化
列了份整体大纲
存储了代码备用

屏幕快照 2019-07-07 上午10.26.11.png

变量

离散型变量
连续型变量

作图先要指定使用哪个数据集,然后指定xy轴。

(1)图层:不同的几何对象、图形元素的叠加方式,代码定义图层之间 用+连接

个体几何对象:
群组几何对象:需要设置group,默认是使用过的离散型变量

(2)aes(映射):建立数据与几何图形之间的关系

颜色类:color(颜色或边框颜色)、fill(填充颜色)和 alpha(透明度)
形状类:linetype(线型)、size(点的大小或线的宽度)和 shape(形状)
位置类:x, y, xmin, xmax, ymin, ymax, xend, yend
特殊类:一类是group和order,另一类是字符串映射

(3)几何对象:对映射的渲染或展示

geom_point:点图
geom_line:折线图
geom_area:面积图
geom_bar:直方图

绘图代码

p_plot <- ggplot(data=dexp,aes(x=Gene,y=Expression,color=Sample))+geom_point() #点图

p_line <- ggplot(data=dexp,aes(x=Sample,y=Expression,color=Gene))+geom_line(aes(group=Gene))#right #折线图

p_boxplot <- ggplot(data=dexp,aes(x=Gene,y=Expression,color=Gene))+geom_boxplot()#箱线图

p_density <- ggplot(data = dexp)+geom_density(aes(Expression, color = Gene)) #密度图

p_violin <-ggplot(data = dexp,aes(x = Sample, y = Expression)) + geom_violin(aes(fill = Group,color=Group))#小提琴图

grid.arrange(p_plot,p_line,p_density, p_boxplot, p_violin,nrow=3)

分面的函数:指的是同一类型的图(比如都是点图,都是折线图)分好几个小图,而不是不同类型的图拼在一起
facet_wrap

facets: 分面参数如 ~Group,表示用 Group 变量进行数据分类
nrow: 绘制图形的行数
ncol: 绘制图形的列数,nrow/ncol只设定一个即可

scales

fixed小图均使用统一坐标;
free每个小图按照各自数据范围自由调整坐标;
free_x为自由调整x轴刻度范围;
free_y为自由调整y轴刻度范围。
ps<-ggplot(data = dexp, aes(x = Sample, y = Expression)) ps + geom_point(aes(color=Gene)) + facet_wrap(~Group,scales = "free_x") #把多余的坐标删掉用scales

facet_grid 与facet_wrap不同的重要参数

facets: 应用两个标准分面,如Gene ~ Group
dexp_small<-filter(dexp, Gene %in% paste("G", 1:4, sep = "")) psm<-ggplot(data = dexp_small, aes(x = Sample, y = Expression)) psm + geom_point(aes(color=Length)) + facet_grid(Gene ~ Group, scales = "free_x")

margins: Ture,包含所有数据的组
dexp_small<-filter(dexp, Gene %in% paste("G", 1:4, sep = "")) psm<-ggplot(data = dexp_small, aes(x = Sample, y = Expression)) psm + geom_point(aes(color=Length)) + facet_grid(Gene ~ Group, scales = "free_x", margins = T,space = "free")

space: 每张小图的幅宽,可设置为固定(fixed)和自由(free,free_x,free_y)

用bins定义窗口数量(窗口=图上的柱子)

ph <- ggplot(data = gene_len,aes(fill=..count..)) ph + geom_bar(stat = "bin",#stat=“bin”可以省略,因为是默认值 bins = 25, aes(x = Length, y = ..count..)) #直方图geom_histogram #在直方图中指定统计方式是按照窗口进行统计 #..count..是ggplot 里的特殊变量,代表统计变换里每个窗口里的计数。

按照binwidth定义

ph <- ggplot(data = gene_len,aes(fill=..count..)) ph + geom_bar(stat = "bin", binwidth = 1000, #把这里去掉一个0就是100 aes(x = Length, y = ..count..))

统计变换与几何对象

  • 每种几何对象默认对应一种统计变换,每种统计变换也默认对应一个几何对象。
  • 作图思路是先确定了做直方图然后选择了统计方式是根据窗口大小。另一种思路是先确定统计方式,再选择直方图。
 ph + stat_bin(binwidth = 100, geom = "bar" ,#bar代表直方图。可省略,因为是默认值aes(x = Length, y = ..count..))
##定义背景图层
 p <- ggplot(data = dexp_small, aes(x = Sample, y = Expression))
##绘制各类图形
    *   #geom_point:散点图
    *   p_point <-p + geom_point(
    *   stat = "identity",
    *   aes(color = Gene),
    *   ) +
    *   labs(title = "geom_point")
    *   #geom_bar:条形图
    *   p_bar1<-p + geom_bar(
    *   stat = "identity",
    *   aes(fill = Gene), #fill是填充颜色,改成color就是边框颜色了,默认填充黑色
    *   )
    *   p_bar2 <- p + geom_bar(
    *   stat = "identity",
    *   aes(fill = Gene),
    *   position = "dodge" #默认stack,改为dodge则是并排,fill将总和算作一,显示百分比。
    *   )
    *   #geom_line:折线图
    *   p_line <- p + geom_line(
    *   stat = "identity",
    *   aes(color = Gene, group = Gene)
    *   )
    *   #geom_area:面积图 #折线图的积分
    *   p_area <- p + geom_area(
    *   stat = "identity",
    *   aes(fill = Gene, group = Gene),
    *   position = "dodge",  #改成“stack”,则会层叠起来
    *   alpha = 5/10 #产生遮挡,调整透明度
    *   )
    *   #geom_boxplot:箱线图
    *   p_boxplot <- p + geom_boxplot(
    *   stat = "boxplot",
    *   aes(color = Sample, group = Sample)
    *   )
    *   ##密度图
    *   p_density <- ggplot(data = dexp_small)+
    *   geom_density(stat = "density",
    *   aes(Expression, color = Gene))
    *   ##小提琴图
    *   p_violin <-ggplot(data = dexp_small,aes(x = Sample, y = Expression)) + geom_violin(stat = "ydensity",
    *   aes(fill = Sample,color=Sample))

合并显示在同一张图上-grid.arrange

 grid.arrange(p_density, p_boxplot, p_violin)
 grid.arrange(p_point, p_bar1,p_bar2, p_line, p_area,p_boxplot,p_violin, p_density,ncol = 2)#两列

引导元素是图例和坐标轴的统称

  • 认识标度:控制数据变量到图形元素的映射
  • 修改标度
    修改1:修改引导元素名称:参数name
        *   ppname <- pp+ scale_x_discrete(name = "doudouGene") +
        *   scale_y_continuous(name = "huahuaExpression") +
        *   scale_color_hue(name = "doudouSample") +
        *   scale_size_continuous(name = "huahualength")

修改2:修改引导元素标签:参数lables
pplabel <- pp + scale_x_discrete(labels = c(1:40))

初阶:修改x轴标签(也就是坐标)
中阶:修改其他标签。这里涉及到一个必会的知识点:离散型变量和连续型变量(discrete),通俗的解释就是字符算是离散型,数字算是连续型(continuous)y轴坐标是数字,所以只能改数字的格式,修改连续型变量需要加载一个scales包。有四种格式可以改:
* comma 每隔三位数显示逗号的格式
* percent 百分数
* dollar 美元
* scientific 科学计数法

修改3:定义域和值域,参数limits

        *   pplim1 <- pp+ scale_x_discrete(limits = paste("G",seq(5,9),sep="")) + #只显示5-9 scale_y_continuous(limits = c(500, 1500))#只显示小于500-1500的-复杂的写法
        *   pplim2 <- pp + xlim(paste("G",seq(5,9),sep="")) + ylim(500, 1500) #简单的写法

修改4:设置显示的刻度(breaks)

ppbreak <- pp + scale_x_discrete( breaks =  paste("G",seq(5,9),sep=""))+  #只是动了坐标轴全部显示scale_y_continuous(breaks = seq(500,1500, by=100))#500-1500 #每一百设置一个刻度

主题设置
* 局部设置-单次操作一张图
part <- pp + theme_bw()
* 全局设置-操作后面所有的图
theme_set(theme_bw())
* 适合做科研的:theme_bw

标题(名称)-title

图片标题plot.title
* 坐标轴标题(名称)axis.title
* 能修改的文本格式
* 水平对齐方式 hjust 0 0.5 1分别表示左对齐/右对齐/居中
* 垂直对齐方式 vjust 0 0.5 1分别表示上对齐/下对齐/居中
* 字号 size
* 倾斜 face ="italic"

图例的位置

    *   bioinfoplanet <- bioinfoplanet+ theme(legend.position = c(0.95,0.75), #设置水平和垂直位置legend.background = element_rect(fill="white"))#这个调整位置是把图例加入到了图片上不是和默认的一样并列在图片右边

coord_flip(翻转坐标系)
coord_polar(极坐标系)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容