边际分布曲线图的绘制

思路和方法,学习重点是数据的筛选拆分、用多个表格的数据绘制分组图表,图层(Layer)的管理。

数据的筛选与拆分

原始数据依照《ggplot2: Guide to Create Beautiful Graphics in R》一书中的方法用rnorm()函数生成的,将数据导入到origin(Origin2017以及之后的版本应该都没问题)的图表中,如下。

由于目前版本的画边际图表的工具不能识别分组信息(只能选择2列),因此要实现分组效果,我们只能将数据拆分成3组,手动添加分组。这里我们用到Origin的数据筛选功能,选中C列,点漏斗工具,为该列添加过滤器(灰色的漏斗),然后点灰色的漏斗选择C1组的数据(如果是数值型的数据可筛选某一范围的数据),筛选后的数据上“漏斗”变为绿色。

然后选中筛选到的数据,右键,复制到一个新表(sheet)中,sheet名称为C1(这样做便于之后的图例设置),如下图。

如果觉得表头的绿锁不能原谅,可以单击下它,将Recalculate Mode改为None,即可让它消失,然后重复之前的步骤,将C2和C3组的数据也筛选出来,分别复制到新表中,如下图。

图表的绘制

在C1 表中,选中两列数据,然后在Plot菜单下,点击Marginal Histograms图标(如下图),即可完成初始图表绘制。

在初始图表中有(1、2、3)3个图层,分别对应散点图、上方直方图和右侧直方图。然后,在图表区域右键,点Plot Setup,如下图。

在Plot Setup窗口中,接下来需要把C2和C3图表的数据也分别添加到3个图层中,方法步骤参考下图,注意调整3个Layer的C1、C2、C3顺序,使其保持一致。

点OK后,得到添加了3组数据的组合图表,接下来右键画布左上角的图层数字标签,点Layer Content...(快捷键 F12)进如图层内容窗口,进行手动分组。

选中右侧窗口中的3行数据,点Group按钮,即可将当前的图层中的数据分成3组;然后通过点Layer按钮,切换(Switch layer)到其余的图层,执行同样的操作,如下图。

3个图层都完成分组后,点Apply按钮,即可实现下图的分组效果。

接下来我们需要隐藏掉图层2和3的直方图,方法是双击图表,在Plot Details窗口下,将直方图的边框颜色调为白色(无透明选项),填充颜色调为透明。

然后为图层2和3添加分布曲线,Curve Type有多种,这里选择较为平滑的Normal,同时调整线的颜色和粗细(这里调为1.5),如下图。

至于图层1中的散点图,用颜色就可以区分分组,所以将Symbol Type的Increment改为None,同时在Group选项下调整散点颜色,如下图。

调整后的效果如下:

图例的调整 

在通过图例工具添加图例后,可能不能如我们所愿,因为图表的数据来自3个不同的表格。这时你可以手动编辑,也可以通过下Plot Details下的Legends/Titles选项让图例自动更新,如下图。这里的@WS表示用表格(Sheet)的名称做图例,你也可点箭头所指的按钮了解更多的形式。

添加图例后的效果是下图这样的,图表就调整基本完成了。

如果你觉得图层2和3的核密度曲线与散点图贴的太近,也可以右键图层数字标签,打开图层管理窗口(Layer management),稍微将图层2上移,图层3右移,方法如下图。

之后隐藏掉两个核密度曲线图表的坐标轴,给散点图添加上方和右侧的网格线或坐标轴,可得到下图这样的“比较透气”的效果。

以上就是边际分布曲线图全部绘制过程,由于没有自动分组功能,过程稍显复杂,希望之后的Origin版本会更新吧。不过,对于Origin学习者来说,通过这个案例相信能对Origin作图有更深入的了解。

如果用Origin自带的案例数据绘制的边际分布曲线图是下图(与前文提到的图片配色不同)这样的,为了方便大家练习,我已把本文两个图表的示例数据和工程文件都上传到Omicshare论坛上,大家可登陆下载。

链接:http://www.omicshare.com/forum/thread-4769-1-1.html

由于受篇幅所限,有些操作细节可能并没有讲清楚,大家可参考之前的《Origin也可以方便绘制火山图》这个综合范例。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 5,184评论 3 23
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 第二章 使用ArcPy编写脚本 ||| 第四章 查找和修复数据源 我们将在本章介绍以下案例: 引用当前地图文档 引...
    muyan阅读 14,909评论 19 23
  • 幽静的夜晚 我独自坐在桌前 望着窗外 窗外星星点点的光亮 像极了那天 我为你精心准备的心形蜡烛 可惜你没有感动 甚...
    九重鸟阅读 209评论 0 1