<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>生信菜鸟团 &#187; google</title>
	<atom:link href="http://www.bio-info-trainee.com/tag/google/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bio-info-trainee.com</link>
	<description>欢迎去论坛biotrainee.com留言参与讨论，或者关注同名微信公众号biotrainee</description>
	<lastBuildDate>Sat, 28 Jun 2025 14:30:13 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.33</generator>
	<item>
		<title>用谷歌搜索来使用ggplot2做可视化（下）</title>
		<link>http://www.bio-info-trainee.com/2334.html</link>
		<comments>http://www.bio-info-trainee.com/2334.html#comments</comments>
		<pubDate>Mon, 30 Jan 2017 11:14:50 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[可视化]]></category>
		<category><![CDATA[搜索]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2334</guid>
		<description><![CDATA[用谷歌搜索来使用ggplot2做可视化（下） Original 2017-01- &#8230; <a href="http://www.bio-info-trainee.com/2334.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="img-content" class="rich_media_area_primary">
<h2 id="activity-name" class="rich_media_title">用谷歌搜索来使用ggplot2做可视化（下）</h2>
<div class="rich_media_meta_list"><span id="copyright_logo" class="rich_media_meta meta_original_tag">Original</span> <em id="post-date" class="rich_media_meta rich_media_meta_text">2017-01-30</em> <em class="rich_media_meta rich_media_meta_text">jimmy</em> <a id="post-user" class="rich_media_meta rich_media_meta_link rich_media_meta_nickname" href="https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483952&amp;idx=1&amp;sn=de8f47f772501a2877d1c4a86eaaf025&amp;chksm=9b48428bac3fcb9d0f2916a0a085a05502959d69226d7effddb813ddfa38084f3d8420dc3526&amp;scene=0&amp;key=5459fe1fff87676f23db7771c7d15916bd11a1f6c35b324df0a032088b2e59f19ca7ed4af1415ac609d9bfb68f80fc8e2d3dd7d1057012652cd9241e22b1dc732f51c6119fb88744559f349816aace35&amp;ascene=1&amp;uin=MzY1MDAyODE1&amp;devicetype=Windows+7&amp;version=6203005d&amp;pass_ticket=y6s4g2jRNDlHNWO8Nj8JhRaNiqz%2FlC0Szk04GBwrDVS9DtAEoJ5IL5B4uXeIG7RS&amp;winzoom=1##">生信菜鸟团</a></div>
<div id="js_content" class="rich_media_content ">
<blockquote><p>我知道会有续集，但也没想到续集来得这么快！今天收到了一个<strong>生信技能树公众账号</strong><strong>铁杆粉丝</strong>（我们之间有过9次邮件交流）的求助信，下面我们首先一起帮他解决一下碰到的问题。随后和大家分享一下可以提高搜索效率和准确率的Google搜索技巧。</p>
<p>&nbsp;</p></blockquote>
<p><span id="more-2334"></span></p>
<p><strong>他的困惑</strong></p>
<p>他遇到的问题很简单，就是<strong>我无法使ggplot2画出的曲线从坐标轴原点(0,0)出发</strong>，因为图像Y轴不是在(0,0)上，所以曲线不于Y轴贴合而是空出了一截，使得图片非常难看！</p>
<p>他还在邮件中补充道，根据我发的文章认真做了搜索，但是没有找到解决方案。</p>
<p><a href="http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483942&amp;idx=1&amp;sn=52be6cb951999fa85a5d859db75d264c&amp;chksm=9b48429dac3fcb8b59110afbb2fdd4dc5fea1f60c137f8caec867c8d3808269b753ea73a677d&amp;scene=21#wechat_redirect" target="_blank"><strong>如何通过Google来使用ggplot2可视化</strong></a> （请点击查看我前面是如何讲解的）</p>
<p>具体内容如下图所示：</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jV5ialznewfaKjFJxuxDx33udXOY8TibhtIVlUSibYBU7QZjtft9ZKdibWQg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jV5ialznewfaKjFJxuxDx33udXOY8TibhtIVlUSibYBU7QZjtft9ZKdibWQg/0?wx_fmt=png" data-ratio="1.8801169590643274" data-w="342" data-fail="0" /></p>
<p><strong>我的搜索方法：</strong></p>
<p>那么是不是真的如他所言，Google也找不到类似解决方案呢？</p>
<p>我在谷歌的搜索框中输入： <strong>ggplot y axis 0</strong></p>
<p>然后摁下回车，就看到了下图的搜索结果<br />
<img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jVUfKegzOic5eJ4CRibyfelZ0CyxKYRBdMg2QAO5GcGDUhmQQ33icyjFNog/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jVUfKegzOic5eJ4CRibyfelZ0CyxKYRBdMg2QAO5GcGDUhmQQ33icyjFNog/0?wx_fmt=png" data-ratio="0.5351351351351351" data-w="740" data-fail="0" /><br />
很明显前两个就是在解决他的问题，只需要用 <strong>scale_y_continuous(expand = c(0, 0)) </strong> 即可。<br />
而且人家给出了测试代码：</p>
<pre><code class="">df &lt;- data.frame(x = <span class="">1</span>:<span class="">5</span>, y = <span class="">1</span>:<span class="">5</span>)<span class="">library</span>(ggplot2)
p &lt;- ggplot(df, aes(x, y)) + geom_point()
p &lt;- p + expand_limits(x = <span class="">0</span>, y = <span class="">0</span>)
p <span class=""># not what you are looking for</span>p + scale_x_continuous(expand = c(<span class="">0</span>, <span class="">0</span>)) + scale_y_continuous(expand = c(<span class="">0</span>, <span class="">0</span>))</code></pre>
<p>你看一下加上<strong>scale_y_continuous(expand = c(0, 0))</strong> 前后的图形变换情况，就明白它就是最好的解决方案！</p>
<p>当然，我在这里并不是想批评这位同学，大过年的，我无意批评谁。</p>
<p>相反，我还要自己检讨一下，发布用<a href="http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483942&amp;idx=1&amp;sn=52be6cb951999fa85a5d859db75d264c&amp;chksm=9b48429dac3fcb8b59110afbb2fdd4dc5fea1f60c137f8caec867c8d3808269b753ea73a677d&amp;scene=21#wechat_redirect" target="_blank"><strong>谷歌搜索来使用ggplot2做可视化(上)</strong></a>的时候，根据大家的反馈意见，我就知道那篇文章失败了，因为重点偏离了。我本意是想表达<strong>凡事都可以通过谷歌搜索来解决问题</strong>，可是字数太少，就把以前的<strong>ggplot2学习心得</strong>笔记放在文末假装自己做了很多工作！</p>
<p>这篇文章我本来应该讲如何来搜索，如何提炼问题，如何设置关键词，如何判别搜索结果的准确性。</p>
<p>可是我做不到，一方面是因为这个能力对我而言已经深入骨髓，近乎本能，另一方面是因为我的语言能力太差，一直看我博客的朋友应该知道，我所能分享的远不及我所会的，真的抱歉，我做不到！</p>
<hr />
<p><strong>常用Google搜索技巧</strong></p>
<p>虽然很多东西只能意会不可言传，但我们还是在这里列出几个常用的Google搜索技巧，如果你可以熟练掌握一定会提高自己搜索问题的效率和准确性。</p>
<ul class="list-paddingleft-2">
<li><strong>有没有Google搜不出来的问题</strong></li>
</ul>
<p>有，但是很少，或者说对于任何一个领域的初学者来说很少。</p>
<p>要知道，我们现在学的东西很多都已经诞生5—10年甚至更久了，而且每一个学习者之前不会谁比谁聪明多少。你在学习过程中遇到的问题，在如今的大牛还是初学者的时候很可能也遇到过，而且已经提问过。所以，当你搜不出来的时候很可能是因为你搜索的姿势不对。比如使用了中文，或者写了一长串无关痛痒的描述。</p>
<p>从另一个角度讲，如果你真的碰到了一个Google无法解决的问题，比如一个非常个性化的需求或者一个别人没有发现的bug，那你应该为自己庆幸，并且下定决心去解决它。这说明至少在这一个小方面，你已经走在了别人的前面。恭喜。</p>
<ul class="list-paddingleft-2">
<li>用双引号<strong>"搜索内容"</strong>进行精确搜索</li>
</ul>
<p>很多时候，我们需要使用精确搜索，比如在进行一些常用软件安装或者使用的过程中会出现各种各样的报错，这时你把软件的<strong>报错信息</strong>用双引号括封装，后面再加上软件的名字和版本，Google就会进行精确的匹配搜索。很可能第一条搜索结果就是你要的。</p>
<ul class="list-paddingleft-2">
<li>用 <strong>-搜索内容</strong> 进行排除搜索</li>
</ul>
<p>在一些情况下，一个主题词往往会和若干个内容关系密切。这时候我们希望明确排除某个我们不想要的内容。</p>
<p>给大家举个例子，比如搜索“直播我的基因组”，你可能会看到发布在“生信菜鸟团”博客上的内容，也可能看到“生信技能树”论坛里的内容，甚至还会看到很多盗版转发的内容。效果如下</p>
<p>&nbsp;</p>
<p>但是如果我不想看到那些发布在生信菜鸟团博客的文章，你只需要这么做：<strong>直播我的基因组 -生信菜鸟团</strong></p>
<p>然后神奇的事情就会发生<strong><br />
</strong></p>
<p>&nbsp;</p>
<p>（发现了么，有不少网站似乎在盗版我们微信公众号的原创文章）</p>
<ul class="list-paddingleft-2">
<li><strong>具体文档类型搜索</strong></li>
</ul>
<p>这个技巧当你在想要查找具体类型文档的时候非常有用。如你想要pdf版本的只需要在搜索内容的最后加上 <strong>filetype:pdf</strong></p>
<ul class="list-paddingleft-2">
<li><strong>指定网站搜索</strong></li>
</ul>
<p>对于码农而言 stackoverflow.com 是一个常用的网站，对于生物信息工作者来说biostar是一个非常好的论坛。如果我们想在某个特定的网站进行搜索的话，你可以在搜索内容之后加上site:****.com</p>
<p>例如，如果你在Google 里面直接搜索 <strong>ggplot y axis 0 site:stackoverflow.com  </strong>来解决我们上面提到的问题，你得到的答案就全部来自这个网站了。</p>
<ul class="list-paddingleft-2">
<li><strong>善用相关推荐内容</strong></li>
</ul>
<p>当你开心地查到自己想要的答案，解决了自己的问题之后，在网站最下面的一些相关推荐通常也值得你去看看。比如我们通过搜索 “ggplot y axis 0” 解决了困惑，Google 还会给你一些大家都在搜索的类似问题。比如：</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jVTvBT5ZVAX3lhHL0EpRFWHqWzN2YyjwwwAO7G7tM9ic6micH0xibrUwAvA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jVTvBT5ZVAX3lhHL0EpRFWHqWzN2YyjwwwAO7G7tM9ic6micH0xibrUwAvA/0?wx_fmt=png" data-ratio="0.45288753799392095" data-w="658" data-fail="0" /></p>
<p>顺便学学怎么给坐标轴命名，怎么给文本配置颜色，不也是一件不错的事情么？</p>
<p>以上就是几个常用的搜索技巧。另外你也可以尝试一下，通过Google搜索如何正确的使用Google。</p>
<p>彩蛋：在Google里搜索 “<strong>zerg rush</strong>” 后，你的搜索结果会慢慢消失。另外，Google 的 doodles 都非常有趣，你也许可以在这个网站玩儿一年 https://www.google.com/doodles</p>
<p><img class=" __bg_gif" src="http://mmbiz.qpic.cn/mmbiz_gif/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jVxwJTLVj3hlNDml3tACAAjvPdoibicwCTmT6TZDuiaQv4ZOOtUDwYqrYmQ/0?wx_fmt=gif&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-type="gif" data-src="http://mmbiz.qpic.cn/mmbiz_gif/cZNhZQ6j4wyER8lFzZRnh7ict3INzo8jVxwJTLVj3hlNDml3tACAAjvPdoibicwCTmT6TZDuiaQv4ZOOtUDwYqrYmQ/0?wx_fmt=gif" data-ratio="0.4444444444444444" data-w="900" data-order="0" data-fail="0" /></p>
<hr />
<p>写在最后：</p>
<p>我把自己定位成一个灯塔，引领在生信学海中挣扎的菜鸟们，告诉你们，前面就是希望，但我做不了舵手，没办法亲自渡你们出苦海！我愿意和你们一起努力！</p>
</div>
</div>
<p>&nbsp;</p>
<div class="rich_media_area_extra"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2334.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何通过Google来使用ggplot2可视化(上)</title>
		<link>http://www.bio-info-trainee.com/2332.html</link>
		<comments>http://www.bio-info-trainee.com/2332.html#comments</comments>
		<pubDate>Mon, 30 Jan 2017 11:13:10 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[ggplot2]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[可视化]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=2332</guid>
		<description><![CDATA[如何通过Google来使用ggplot2可视化 Original 2017-01 &#8230; <a href="http://www.bio-info-trainee.com/2332.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="img-content" class="rich_media_area_primary">
<h2 id="activity-name" class="rich_media_title">如何通过Google来使用ggplot2可视化</h2>
<div class="rich_media_meta_list"><span id="copyright_logo" class="rich_media_meta meta_original_tag">Original</span> <em id="post-date" class="rich_media_meta rich_media_meta_text">2017-01-29</em> <em class="rich_media_meta rich_media_meta_text">jimmy</em> <a id="post-user" class="rich_media_meta rich_media_meta_link rich_media_meta_nickname" href="https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483942&amp;idx=1&amp;sn=52be6cb951999fa85a5d859db75d264c&amp;chksm=9b48429dac3fcb8b59110afbb2fdd4dc5fea1f60c137f8caec867c8d3808269b753ea73a677d&amp;scene=0&amp;key=5459fe1fff87676fce4eae3d97e40be7fd760171decab019259a03f2eb1f600a7ab887f1a93526c834e2ef3a3c452b54787d853a50732112638bda9dff6740e011ef2755300d0b4042c23fdea6d01be6&amp;ascene=1&amp;uin=MzY1MDAyODE1&amp;devicetype=Windows+7&amp;version=6203005d&amp;pass_ticket=y6s4g2jRNDlHNWO8Nj8JhRaNiqz%2FlC0Szk04GBwrDVS9DtAEoJ5IL5B4uXeIG7RS&amp;winzoom=1##">生信菜鸟团</a></div>
<div id="js_content" class="rich_media_content ">
<p><strong>今天是大年初二，这篇文章我只想传达一点：</strong></p>
<blockquote><p><strong>没有什么菜鸟级别的生物信息学数据处理是不能通过Google得到解决方案的，如果有，请换个关键词继续Google！</strong></p></blockquote>
<hr />
<h2><strong>第一部分</strong></h2>
<p>首先用两分钟的时间简单介绍一下<strong>R语言</strong>：</p>
<p>因为这个语言是<strong>肉丝儿</strong>（<strong>R</strong>oss Ihaka）和<strong>萝卜特</strong>（<strong>R</strong>obert Gentleman）两个人1992年在S语言的基础上发明出来的开源语言，所以叫做<strong>R</strong>语言。这两个人是统计学教授出身，所以<strong>R语言在统计学方面有着纯正的血统</strong>！如果你平时的工作和统计相关，你好意思不会点R语言么？</p>
<p>&nbsp;</p>
<p><span id="more-2332"></span></p>
<p>另外，在R语言的官网上，有这样一句话</p>
<blockquote><p>One of R’s strengths is the ease with which <strong>well-designed publication-quality plots can be produced</strong>, including mathematical symbols and formulae where needed.</p></blockquote>
<p><strong>看明白了么盆友！</strong></p>
<p><strong>画图，画各种各样的图，画各种各样高逼格的图，画各种各样高逼格可以出版的图，是R语言自带的另一个光芒属性</strong>。如果你正在为如何画出各种好看的可视化图而苦恼，难道你不应该学习一点R语言么？</p>
<p>对了，如果你以为R语言的创造者<strong>肉丝儿</strong>和<strong>萝卜特</strong>是一对情侣（这里真的没有鱼香什么事），那你错了，因为他俩长这样！</p>
<p><img src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxUWibs0acnzn0bj4icG4JiagXS9XM36IES1lSV7Fcary2YWhyXerxxvZ0y20DicqNsoewV89G7vXsFqg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" alt="" data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wxUWibs0acnzn0bj4icG4JiagXS9XM36IES1lSV7Fcary2YWhyXerxxvZ0y20DicqNsoewV89G7vXsFqg/0?wx_fmt=png" data-ratio="0.6799431009957326" data-w="703" data-fail="0" /></p>
<hr />
<h2><strong>第二部分</strong></h2>
<p>谈到画图，R语言里面有一个极其强大的工具，它是我们今天要谈论的主角：<strong>ggplot2</strong></p>
<p>ggplot2 绘图作为R语言可视化阵营扛把子的地位是毋庸置疑的，我能与它结缘主要是因为自己本来没有正经地学过R语言，基础绘图里面多如繁星的参数调的我晕头转向。</p>
<p>正好看到一些公司的科研结题报告里面非常赞的图都是ggplot2出品的，就下定决心学一下。老规矩，先看点中文资料，接触最早是<strong>Y叔的ggplot系列</strong>，作为初学者入门指引绰绰有余了。<strong>把代码在R里面原样输出看看效果，把数据和代码和图形在脑海中形成连接，最后留在我心底的就只有映射这一核心思想。</strong></p>
<p>我就明白我已经学会ggplot2的可视化了，虽然那时候的我画一个完整完美的图仍旧是各种磕磕碰碰，但并不影响我已经掌握了它的精髓。</p>
<p>两年多过去了，本身工作中需要我亲自来画图的机会非常少，所以我的可视化能力毫无进展，甚至有小幅度后退。最近在做<strong>直播我的基因组系列</strong>，完全是一个人要把一个团队的分析要点全部hold住，对我本身也是一个不小的考验。</p>
<p>前面的科研常规流程，包括下载各种公共数据，下载安装常见的软件，跑流程是我习以为常的事情。但作为自己的基因组，我的探索肯定不能像以往做科研项目那样浅尝辄止，马马虎虎的交差（<em>希望老板不要看到</em>）。我开始一步步地探索以前未接触的，懒得接触的，错过的细节知识点。而展现知识点给读者<strong>最重要的环节就是可视化</strong>。</p>
<p>今时不同往日，我木有手下，得亲自上阵。</p>
<ul class="list-paddingleft-2">
<li>一篇一篇文献地读</li>
<li>一个细节一个细节地搜索</li>
<li>一行代码一行代码地敲</li>
<li>一个参数一个参数地调整</li>
<li>一个问题一个问题地求助。</li>
</ul>
<p>大家由最近的<strong>直播我的基因组45—55讲</strong>应该可以看得出来，可视化方面我的确很弱，但我还是想分享一下自己是<strong>如何通过google来使用ggplot做可视化的</strong>！(<em>如果你ggplot已经小成请略过后面的内容，新年快乐.jpg</em>)</p>
<p><b>下面的每张图我都是通过搜索做出来的，因为此时的我ggplot2语法已经忘光了。</b>(请务必亲自把我给出的关键词输入到google自己搜索一遍，我给出的链接复制到浏览器用心看一遍，不要以为就只有看个手机版的就能学会我的学习方法)</p>
<p><strong>比如</strong>画X,Y变量(测序深度和GC含量)的散点图需要添加回归曲线，标记回归方程。</p>
<p><a href="http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483912&amp;idx=2&amp;sn=98431355a5aaa363741bd66de50272c4&amp;chksm=9b4842b3ac3fcba535b26486ffbb95892d172f8240f9b55a281e19b50fff713d05a53aefb45a&amp;scene=21#wechat_redirect" target="_blank">【直播】我的基因组47:测序深度和GC含量的关系</a></p>
<p>我在Google里面是这样搜索的：</p>
<p><code class=""><span class="">add regression line to scatter plot in rggplot2</span></code></p>
<p>http://www.cookbook-r.com/Graphs/Scatterplots_(ggplot2)/</p>
<p>http://stackoverflow.com/questions/7549694/ggplot2-adding-regression-line-equation-and-r2-on-graph</p>
<p>然后我只看了这两个链接而已，就得到了自己想要的图！</p>
<p><strong>比如</strong>画多个分组变量(SNV和INDEL的het,hom)的条形图，并且标记每个变量的数值，还有修改图例，重新排序！</p>
<p><a href="http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483932&amp;idx=1&amp;sn=e3797fb546bc699f0d149c34edb2677e&amp;chksm=9b4842a7ac3fcbb1c3f2c6ebf2829e2d3e73b2aa19f70d98350c0d4ed724036d60c8f6c9c887&amp;scene=21#wechat_redirect" target="_blank">【直播】我的基因组54：把我的variation跟dbSNP数据库相比较</a></p>
<p><code class=""><span class="">change legend in r ggplot2</span></code></p>
<p>http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/</p>
<p>http://stackoverflow.com/questions/14622421/how-to-change-legend-title-in-ggplot-density</p>
<p><code class=""><span class="">add values for bar plot in R ggplot</span></code></p>
<p>http://stackoverflow.com/questions/6644997/showing-data-values-on-stacked-bar-chart-in-ggplot2</p>
<p>http://stackoverflow.com/questions/11653268/adding-labels-to-ggplot-bar-chart</p>
<p><strong>再比如</strong>画人的22+X+Y染色体的测序深度的分布！</p>
<p><a href="http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247483923&amp;idx=2&amp;sn=2bfd8703f4c14fa7efc3ed5afb60b383&amp;chksm=9b4842a8ac3fcbbe64ae4c83a9a3c44a1a7b711e20a83fc2bf4660aefe5bde170d48a2f3b8a0&amp;scene=21#wechat_redirect" target="_blank">链接【直播】我的基因组51:画全基因范围内的染色体reads覆盖度图</a></p>
<p><code class=""><span class="">chromosome coverage r ggplot2</span></code></p>
<p>http://stackoverflow.com/questions/14629607/long-vector-plot-coverage-plot-in-r</p>
<p>https://www.biostars.org/p/18954/</p>
<p><strong>还有</strong>GO的分类富集分析结果图，或者火山图，或者其它：</p>
<p><code class=""><span class="">go structure enrichment results r ggplot2</span></code></p>
<p>https://cran.r-project.org/web/packages/GOplot/vignettes/GOplot_vignette.html</p>
<p>https://arxiv.org/ftp/arxiv/papers/1602/1602.07103.pdf</p>
<p>基本上生物信息学所有常见的图在Google里面都可以找到现成的代码！</p>
<p>如果你跟我一样，只是想达到目的，那就Google好了。如果你需要创造新的可视化，彻底走向可视化这条路就有点麻烦了，你可能需要看大量的书籍，比如上面我们Google结果经常出现的<strong>《cookbook R》</strong> 和 <strong>《ggplot2 elegant graphics for data analysis》</strong>就是很优秀的。</p>
<p>不过，如果你们点进去看了我画的都是些什么东西，就明白，不要学我！ 我只会修改别人的代码画图而已，如果你要彻底掌握可视化，请移步去<strong>Y叔的博客</strong>！</p>
<p><strong>GitHub 网址</strong><strong> http://guangchuangyu.github.io/</strong></p>
<p>或者关注他的公众号</p>
<p>&nbsp;</p>
<hr />
<h2><strong>第三部分</strong></h2>
<p>这一部分是我和本文编辑学习<strong>ggplot2 </strong>的一小部分总结，如果你想看全部总结可以加<strong>生信菜鸟团QQ群</strong><strong>下载 Word 版本</strong>。</p>
<p>&nbsp;</p>
<p>什么，群号是啥？文末告诉你，先好好看文章。</p>
<ul class="list-paddingleft-2">
<li><strong>关于R绘图的基本知识：</strong></li>
</ul>
<p>R语言目前比较常用的有三大绘图系统</p>
<ul class="list-paddingleft-2">
<li><strong>基本绘图系统</strong>（Base Plotting System）</li>
<li><strong>Lattice绘图系统</strong>（Lattice Plotting System）</li>
<li><strong>ggplot2绘图系统</strong>（ggplot2 Plotting System）</li>
</ul>
<blockquote><p>其中，<strong>基本绘图系统</strong>调用绘图函数<strong>graphics包</strong>，其中包括 <code class=""><span class="">plot/hist/lines/text</span></code>等命令，每次你调用一个函数都会启用一个图形设备并在该设备上直接绘图。</p>
<p>而<strong>Lattice绘图系统</strong>相对高级一些，它会调用<strong>lattice包</strong>，其中包括 <code class=""><span class="">xyplot/histogram/stripplot/dotplot</span></code>等命令，如果你使用 <code class=""><span class="">panel</span></code>函数，还可以控制每个面板内的绘图。</p>
<p>最高级的当属<strong>ggplot2</strong>。</p>
<p>在<strong>ggplot2</strong>中，你首先利用 <code class=""><span class="">qplot()</span></code>完成类似于基本绘图系统中 <code class=""><span class="">plot</span></code>的操作，参数包括 <code class=""><span class="">geom/asethetics</span></code>等；随后你可以利用 <code class=""><span class="">ggplot()</span></code>这个核心实现 <code class=""><span class="">qplot()</span></code>所无法实现得功能，它开创性的在R语言绘图中增加了<strong>图层</strong>的概念（<em>如果你熟悉PS应该对图层不陌生</em>）。</p></blockquote>
<p>&nbsp;</p>
<ul class="list-paddingleft-2">
<li><strong>关于ggplot2，下面的内容很重要！</strong></li>
</ul>
<p><strong>首先</strong>必须练习几个基本图形来了解它映射的思想。</p>
<p>散点图、直方图、条形图、密度图、箱线图。</p>
<p><strong>然后</strong>加载包及数据集，选取一个小量数据集来做分析，测试数据如下：</p>
<p>&nbsp;</p>
<p>各种属性映射由 <code class=""><span class="">ggplot()</span></code>函数执行，只需要加一个图层，比如 <code class=""><span class="">geom_point()</span></code>告诉<strong>ggplot2</strong>要画散点，于是所有的属性都映射到散点上。</p>
<p><code class=""><span class="">geom_point()</span></code>完成的就是几何对象的映射，ggplot2提供了各种几何对象映射，如 <code class=""><span class="">geom_histogram</span></code>用于直方图， <code class=""><span class="">geom_bar</span></code>用于画柱状图， <code class=""><span class="">geom_boxplot</span></code>用于画箱式图等等。</p>
<p>不同的几何对象，要求的属性会有些不同，<strong>这些属性也可以在几何对象映射时提供。(属性就是需要google的，除非你全部熟记它们！)</strong></p>
<ul class="list-paddingleft-2">
<li><strong>内置图形函数</strong></li>
</ul>
<p><strong>1.散点图</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(data = small, mapping = aes(x =carat, y = price, shape=cut, colour=color))+geom_point()</span><span class="">`</span></code></li>
</ol>
<p>或者是</p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small) +geom_point(aes(x=carat, y=price, shape=cut,colour=color))</span></code></li>
</ol>
<blockquote><p><code class=""><span class="">aes</span></code>里面的就是映射，根据 <code class=""><span class="">cut</span></code>的不同选取不同形状的点，根据 <code class=""><span class="">color</span></code>来画不同颜色的点，可以在 <code class=""><span class="">ggplot</span></code>里面映射，也可以在几何对象里面映射</p></blockquote>
<p><strong>2.直方图</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small)+geom_histogram(aes(x=price,fill=cut), position=</span><span class="">"fill"</span><span class="">)</span></code></li>
</ol>
<blockquote><p>直方图只需要一个数据，自动分组来得到X,Y轴变量，直方图把连续型的数据按照一个个等长的分区（bin）来切分，然后计数，画柱状图</p></blockquote>
<p><strong>3.条形图</strong></p>
<p>以上两个等价<strong>(这里缺图，我懒得上传了)</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot()+geom_bar(aes(x=c(LETTERS[</span><span class="">1</span><span class="">:</span><span class="">3</span><span class="">]),y=</span><span class="">1</span><span class="">:</span><span class="">3</span><span class="">),stat=</span><span class="">"identity"</span><span class="">)</span></code></li>
</ol>
<blockquote><p>条形图只有自定义Y轴，<strong>然后用 <code class=""><span class="">stat="identity"</span></code>才是真正意义上的条形图。</strong></p></blockquote>
<p><strong>4.密度函数图</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small)+geom_density(aes(x=price,colour=cut))</span></code></li>
<li><code><span class="">ggplot(small)+geom_density(aes(x=price,fill=clarity))</span></code></li>
</ol>
<blockquote><p>密度函数图，数据和映射和直方图是一样的，唯一不同的是几何对象， <code class=""><span class="">geom_histogram</span></code>告诉 <code class=""><span class="">ggplot</span></code>要画直方图，而 <code class=""><span class="">geom_density</span></code>则说我们要画密度函数图，也是同样的把连续型的数据按照一个个等长的分区（bin）来切分，然后计数，画曲线。</p></blockquote>
<p><strong>5.箱式图</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small)+geom_boxplot(aes(x=cut,y=price,fill=color))</span></code></li>
</ol>
<blockquote><p>总共有5种 <code class=""><span class="">cut</span></code>，每个 <code class=""><span class="">cut</span></code>下面都有7种 <code class=""><span class="">color</span></code>，所以会形成35个箱子！</p>
<p><strong>上传图片太麻烦了，大过年的我就不浪费时间了。上面的代码大家拿到R里面直接复制粘贴就可以直接运行出图的！</strong></p></blockquote>
<p>&nbsp;</p>
<p><strong>如果ggplot2只是有这39个内置图形函数那就太没意思了</strong>，每个映射都是可以细化调整的，包括X,Y轴，颜色，大小等具体的熟悉，只是需要时间来熟练使用！</p>
<ul class="list-paddingleft-2">
<li><strong>统计变换（Statistics）</strong></li>
</ul>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small, aes(x=carat,y=price))+geom_point()+scale_y_log10()+stat_smooth()</span></code></li>
</ol>
<p>这里， <code class=""><span class="">aes</span></code>所提供的参数，就通过 <code class=""><span class="">ggplot</span></code>提供，而不是提供给 <code class=""><span class="">geom_point</span></code>，因为 <code class=""><span class="">ggplot</span></code>里的参数，相当于全局变量， <code class=""><span class="">geom_point()</span></code>和 <code class=""><span class="">stat_smooth()</span></code>都知道x,y的映射，如果只提供给 <code class=""><span class="">geom_point()</span></code>，则相当于是局部变量， <code class=""><span class="">geom_point</span></code>知道这种映射，而 <code class=""><span class="">stat_smooth</span></code>不知道，当然你再给 <code class=""><span class="">stat_smooth</span></code>也提供x,y的映射，不过共用的映射，还是提供给 <code class=""><span class="">ggplot</span></code>好。</p>
<p>&nbsp;</p>
<p><strong>统计变换</strong>是非常重要的功能，我们可以自己写函数，基于原始数据做某种计算，并在图上表现出来，也可以通过它改变geom_xxx函数画图的默认统计参数。</p>
<ul class="list-paddingleft-2">
<li><strong>坐标系统（Coordinante）</strong></li>
</ul>
<p>坐标系统控制坐标轴，可以进行变换，例如XY轴翻转，笛卡尔坐标和极坐标转换，以满足我们的各种需求。</p>
<p><strong>坐标轴翻转</strong>由 <code class=""><span class="">coord_flip()</span></code>实现</p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small)+geom_bar(aes(x=cut,fill=cut))+coord_flip()</span></code></li>
</ol>
<p>而<strong>转换成极坐标</strong>可以由 <code class=""><span class="">coord_polar()</span></code>实现：</p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small)+geom_bar(aes(x=factor(</span><span class="">1</span><span class="">),fill=cut))+coord_polar(theta=</span><span class="">"y"</span><span class="">)</span></code></li>
<li><code><span class="">ggplot(small)+geom_bar(aes(x=factor(</span><span class="">1</span><span class="">),fill=cut))</span></code></li>
<li><code><span class="">ggplot(small)+geom_bar(aes(x=factor(</span><span class="">1</span><span class="">),fill=cut))+coord_polar(theta=</span><span class="">'y'</span><span class="">)</span></code></li>
<li><code><span class="">#就是饼图</span></code></li>
<li><code><span class="">#这个bar图是统计cut的各个因子出现的次数，来作为Y轴。</span></code></li>
</ol>
<p><strong>合并画多个饼图</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(new_a,aes(x =</span><span class="">""</span><span class="">,y=V3,fill=V2)) +geom_bar(width = </span><span class="">3</span><span class="">, stat=</span><span class="">"identity"</span><span class="">)+coord_polar(</span><span class="">"y"</span><span class="">)+ facet_wrap(type~V1)+theme(text=element_text(face=</span><span class="">'bold'</span><span class="">))</span></code></li>
</ol>
<p>以及<strong>风玫瑰图(windrose)</strong></p>
<ol class="list-paddingleft-2">
<li><code><span class="">ggplot(small)+geom_bar(aes(x=clarity,fill=cut))+coord_polar()</span></code></li>
</ol>
<ul class="list-paddingleft-2">
<li><strong>主题</strong></li>
</ul>
<p><strong>ggplot2</strong>提供一些已经写好的主题，比如 <code class=""><span class="">theme_grey()</span></code>为默认主题，我经常用的 <code class=""><span class="">theme_bw()</span></code>为白色背景的主题，还有 <code class=""><span class="">theme_classic()</span></code>主题，和R的基础画图函数较像。</p>
<p>还有<strong>二维密度图</strong></p>
<ol class="list-paddingleft-2">
<li><code class=""><span class="">ggplot(diamonds, aes(carat, price))+stat_density2d(aes(fill = ..level..), geom=</span><span class="">"polygon"</span><span class="">)+scale_fill_continuous(high=</span><span class="">'darkred'</span><span class="">,low=</span><span class="">'darkgreen'</span><span class="">)</span></code></li>
<li><code class=""><span class="">#其中..level..是生成的变量</span></code></li>
</ol>
<hr />
<p>好了，这篇<strong>诚意之作</strong>就写到这里，再次祝大家新年快乐！</p>
<p>欢迎把文章分享给你身边的朋友！</p>
<p>如果想知道如何科学上网，也可以加群请教哦~</p>
<p><strong>生信菜鸟团QQ群：201161227 </strong>（所剩名额不多，请提高手速）</p>
<hr />
<p>文：Jimmy &amp; 一只思考问题的熊</p>
<p>校对编辑：一只思考问题的熊</p>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="rich_media_area_extra"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/2332.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
