专栏首页生信了R语言作图(一)violin plot

R语言作图(一)violin plot

即便小仙同学决定学习R语言来提升自己作图的“逼格”的时候,心中还有有些疑虑的(嘿嘿,我这么懒,可不愿意做无用功了?)。仔细想了想,貌似又找到了两个学习的理由。

一是R可以帮助我们避免重复劳动,实现“一劳永逸”的终极梦想。尽管非常不想承认这一事实,在科研的过程中,小仙同学制造出了大量“无效”的数据(sign…),但也不得不“绞尽脑汁”、“竭尽全力”地进行花式分析,试图找出合理的解释。这时候用Excel或者Origin作图的劣势就显现出来了,每换一种分析方法或者是数据,我们都需要经过“插入图表”、“调整颜色”、“调整间距”等等繁杂的工序画出一张可以拿去“面圣”的图。小仙同学一想到这些就感觉“累觉不爱”了。

二是R可以自动生成比较貌美的图。不知道大家有没有这样的感受,自己辛辛苦苦画了半天、调整的半天的图会得到真实却很残忍的评价“很丑”(这是小仙同学心中永远的痛)。即使本小仙自以为眼光独特、品味高雅,费劲尝试“高级”的色系,但搭配出来总是那么不尽人意(实测网红晚晚带火的“莫兰迪色”不适用于科研绘图)。颜色的搭配、饱和度和透明度的调整没有想象中那么容易。折腾了半天,天生就爱不服气的本小仙,最后决定还是把专业的事交给专业的人做啦(偷偷告诉你,据说有科学家专门研究paper插图的配色,所以自己画的图没有那么貌美的时候也不要“妄自菲薄”啦)。

好了,叨叨这么多,终于要开始进入正题啦。一开始用R绘图的时候,小仙同学其实是非常痛苦的,因为没有编程基础,又怼了好几年瓶瓶罐罐,看到一行行代码,脑子里飘过的全是“&%¥#@¥$”。尤其是当你有实验要做、报告要写、作业要交的时候,平心静气地坐下来踏踏实实学习真的太难了(有人说小仙同学那么忙是因为效率低,好像真有些道理,我这真是“唉”,有苦说不出)。

后来本小仙的学习策略就非常简单,用到啥就去搜啥,我对数据结构、语法结构一点都不感兴趣,能让我用最短的时间内画出我想要的图,就是最好的方法。即使这样,小仙同学还是费了一些功夫。因为网上的一些教程,很多都是从别处复制粘贴过来的,本身就不完整。另外一个原因,某些大神觉得自己的教程已经足够通俗易懂了,有些大家都知道的基础知识根本不需要讲(小仙同学不服,有基础的同学不用看教程也可以自己摸索出来,真正需要教程的就是我们这些小白)。

小仙同学愿意尝试一下,把最最全面、稍作修改就能拿去的方法code分享一下,也不枉费花了那么多的时间。

那就先从violin plot开始吧。

(假设你已经安装了R和RStudio)

Step1.绘图数据的准备

首先要把你想要绘图的数据调整成R语言可以识别的格式。

一般我们的数据都是保存在excel文档里,这里建议大家在excel中保存成csv格式,读写的速度会比xlsx快很多。(小仙同学的亲身经验,我的有些数据有两万行,xlsx在我的耐心范围内读不进去,RStudio崩溃)。

数据的格式如下图:一列表示一种变量,第一行是列名

Step2.绘图数据的读取

#注释:header=T表示数据中的第一行是列名,如果没有列名就用header=F

data<-read.csv(“yourfile path”, header = T)

Step3.绘图所需package的安装、调用

#注释:ggplot2是目前公认绘图很强的一个安装包

install.package(“ggplot2”)

#注释:package使用之前需要调用

library(ggplot2)

Step4.绘图

#注释:此处dose可用你的变量名称替换,$表示取数据集里的某一个元素

data$dose<- as.factor(data$dose)

#注释:”x=”,”y=”表示x轴和y轴的数值

p<-ggplot(data,aes(x = dose, y = len))

p+geom_violin()

Step5.美化

#注释:填充颜色

p+geom_violin(aes(fill= dose))

*如果你想手动改变颜色,可以使用这一句

#注释:”#56B4E9”可以用其他颜色的代码来替换

p+geom_violin(aes(fill= "dose"))+scale_fill_manual(values=c("#56B4E9"))

好啦,今天的分享就到这里了,希望可以帮助到大家。有什么新的作图要求,可以留言给我哦!

本文分享自微信公众号 - 生信了(gh_ed36a29a9a9d),作者:黄小仙

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言作图——导出高清图

    上一次小仙同学分享了 facet violin plot的画法,最后还卖了个关子,给大家留了个悬念。科研文章的插图通常要求比较高,不仅要精准地展示出数据,选对图...

    一只羊
  • R-概率统计与模拟(五)彩票连号、归纳法以及二项分布

    由于微信公众号不支持Markdown,所以我们会将文章先发表在支持Markdown的csdn博客上,然后从公众号跳转到csdn博客。从本文开始,会尝试一段时间看...

    一只羊
  • 序列比对(20)基序发现问题的算法及实现代码

    由于要遍历所有可能的起始位点,所以一种自然的想法是使用递归。但是为了配合后续的分支定界法,我们采用了树结构,并且进行DFS(深度优先搜索)。既然采用树结构,最简...

    一只羊
  • Python matplotlib绘制饼图

    继前面使用matplotlib绘制折线图、散点图、柱状图和直方图,本篇文章继续介绍使用matplotlib绘制饼图。

    Python碎片公众号
  • Python如何脚本过滤文件中的注释

    确保对模块, 函数, 方法和行内注释使用正确的风格,Python中的注释有单行注释和多行注释。如果希望去除文件中所有注释,如何做呢?

    砸漏
  • 客户让你给代码加注释怎么办?

    作为乙方,我以前听过一些同事说客户要求给代码加注释,一开始自己不以为然,直到有一天这件事情发生在我身上:某大有可为的项目接近尾声,准备下项目前一周,PM说接到客...

    袁慎建@ThoughtWorks
  • 编写高质量可维护的代码:一目了然的注释

    有一些人认为,好的代码是自我解释的。合适的命名和优秀的代码的确可以减轻开发人员阅读代码的工作量,对于不是特别复杂的代码可能确实可以做到自我解释。但并不是所有场景...

    政采云前端团队
  • Java注释:您想知道的一切

    注释是元数据的一种形式。它提供有关程序的数据,该数据不属于程序本身。注释对其注释的代码的操作没有直接影响。注释是在Java语言规范的第三版中以Java语言首次引...

    用户7466307
  • 一场关于代码注释的争执,引发的三点思考

    “提倡加注释,但不能滥用。我们开发流程中会有Code Review过程,这样每个人都将了解好的注释是什么样的,同时你遇到不好的代码注释,也需要告诉他如何改进。”

    架构精进之路
  • 代码洁癖系列(四):可忽略的注释

    刚开始学编程的时候,老师就告诉我们,注释很重要,但是一直到现在,也没有人真正告诉过我要怎么写注释。还有很多人甚至干脆不写注释。所以今天想聊一下到底如何写注释。

    Jackeyzhe

扫码关注云+社区

领取腾讯云代金券