山地车 發表於 2022-2-18 09:47:46

R语言绘制小提琴图violin plot实现示例

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>Step1. 绘图数据的准备</li><li>Step2. 绘图数据的读取</li><li>Step3.绘图所需package的安装、调用</li><li>Step4.绘图</li><li>Step5.美化</li></ul></div><p>即便小仙同学决定学习R语言来提升自己作图的&ldquo;逼格&rdquo;的时候,心中还有有些疑虑的(嘿嘿,我这么懒,可不愿意做无用功了?)。仔细想了想,貌似又找到了两个学习R的理由。</p>
<p>一是R可以帮助我们避免重复劳动,实现&ldquo;一劳永逸&rdquo;的终极梦想。尽管非常不想承认这一事实,在科研的过程中,小仙同学制造出了大量&ldquo;无效&rdquo;的数据(sign&hellip;),但也不得不&ldquo;绞尽脑汁&rdquo;、&ldquo;竭尽全力&rdquo;地进行花式分析,试图找出合理的解释。这时候用Excel或者Origin作图的劣势就显现出来了,每换一种分析方法或者是数据,我们都需要经过&ldquo;插入图表&rdquo;、&ldquo;调整颜色&rdquo;、&ldquo;调整间距&rdquo;等等繁杂的工序画出一张可以拿去&ldquo;面圣&rdquo;的图。小仙同学一想到这些就感觉&ldquo;累觉不爱&rdquo;了。</p>
<p>二是R可以自动生成比较貌美的图。不知道大家有没有这样的感受,自己辛辛苦苦画了半天、调整的半天的图会得到真实却很残忍的评价&ldquo;很丑&rdquo;(这是小仙同学心中永远的痛)。即使本小仙自以为眼光独特、品味高雅,费劲尝试&ldquo;高级&rdquo;的色系,但搭配出来总是那么不尽人意(实测网红晚晚带火的&ldquo;莫兰迪色&rdquo;不适用于科研绘图)。颜色的搭配、饱和度和透明度的调整没有想象中那么容易。折腾了半天,天生就爱不服气的本小仙,最后决定还是把专业的事交给专业的人做啦(偷偷告诉你,据说有科学家专门研究paper插图的配色,所以自己画的图没有那么貌美的时候也不要&ldquo;妄自菲薄&rdquo;啦)。</p>
<p>好了,叨叨这么多,终于要开始进入正题啦。一开始用R绘图的时候,小仙同学其实是非常痛苦的,因为没有编程基础,又怼了好几年瓶瓶罐罐,看到一行行代码,脑子里飘过的全是&ldquo;&amp;%&yen;#@&yen;$&rdquo;。尤其是当你有实验要做、报告要写、作业要交的时候,平心静气地坐下来踏踏实实学习真的太难了(有人说小仙同学那么忙是因为效率低,好像真有些道理,我这真是&ldquo;唉&rdquo;,有苦说不出)。</p>
<p>后来本小仙的学习策略就非常简单,用到啥就去搜啥,我对数据结构、语法结构一点都不感兴趣,能让我用最短的时间内画出我想要的图,就是最好的方法。即使这样,小仙同学还是费了一些功夫。因为网上的一些教程,很多都是从别处复制粘贴过来的,本身就不完整。另外一个原因,某些大神觉得自己的教程已经足够通俗易懂了,有些大家都知道的基础知识根本不需要讲(小仙同学不服,有基础的同学不用看教程也可以自己摸索出来,真正需要教程的就是我们这些小白)。<br />小仙同学愿意尝试一下,把最最全面、稍作修改就能拿去的方法code分享一下,也不枉费花了那么多的时间。<br />那就先从violin plot开始吧。<br />(假设你已经安装了R和RStudio)</p>
<p class="maodian"></p><h2>Step1. 绘图数据的准备</h2>
<p>首先要把你想要绘图的数据调整成R语言可以识别的格式。<br />一般我们的数据都是保存在excel文档里,这里建议大家在excel中保存成csv格式,读写的速度会比xlsx快很多。(小仙同学的亲身经验,我的有些数据有两万行,xlsx在我的耐心范围内读不进去,RStudio崩溃)。<br />数据的格式如下图:一列表示一种变量,第一行是列名</p>
<p style="text-align:center"><img alt="数据格式" src="https://img.jbzj.com/file_images/article/202202/2022021809330716.png" /></p>
<p class="maodian"></p><h2>Step2. 绘图数据的读取</h2>
<blockquote><p>data&lt;-read.csv(&ldquo;your file path&rdquo;, header = T)</p>
<p>#注释:header=T表示数据中的第一行是列名,如果没有列名就用header=F</p></blockquote>
<p class="maodian"></p><h2>Step3.绘图所需package的安装、调用</h2>
<blockquote><p>install.package(&ldquo;ggplot2&rdquo;) #注释:ggplot2是目前公认绘图很强的一个安装包</p>
<p>library(ggplot2) #注释:package在使用之前需要调用</p></blockquote>
<p class="maodian"></p><h2>Step4.绘图</h2>
<blockquote><p>data$dose &lt;- as.factor(data$dose)</p>
<p>#注释:此处dose可用你的变量名称替换,$表示取数据集里的某一个元素</p></blockquote>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202202/2022021809330717.png" /></p>
<blockquote><p>p&lt;-ggplot(data, aes(x = dose, y = len))</p>
<p>#注释:&rdquo;x=&rdquo;,&rdquo;y=&rdquo;表示x轴和y轴表示的变量数值,p表示图像对象</p>
<p>p+geom_violin() #注释:画出violin plot的函数</p></blockquote>
<p class="maodian"></p><h2>Step5.美化</h2>
<blockquote><p>p+geom_violin(aes(fill = dose)) #注释:按组别填充不同的颜色</p></blockquote>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202202/2022021809330718.png" /></p>
<p>*如果你想手动改变颜色,可以使用这一句</p>
<blockquote><p>p+geom_violin(aes(fill = &ldquo;dose&rdquo;))+scale_fill_manual(values=c(&quot;#56B4E9&quot;))<br />#注释:&rdquo;#56B4E9&rdquo;可以用其他颜色的代码来替换</p></blockquote>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202202/2022021809330719.png" /></p>
<p>好啦,今天的分享就到这里了,希望可以帮助到大家以后请多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>R语言绘图学习教程VennDiagram绘制venn</li><li>R语言绘制维恩图ggvenn示例详解</li><li>R语言绘制Bubble&nbsp;Matrix气泡矩阵图</li><li>R语言绘制line plot线图示例详解</li><li>R语言绘制Facet&nbsp;violin&nbsp;plot小提琴刻面图实现示例</li><li>R语言学习VennDiagram包绘制韦恩图示例</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: R语言绘制小提琴图violin plot实现示例