zoukankan      html  css  js  c++  java
  • R语言三元相图的做法

    通常情况下,对于三维数据,我们会用三维图表来展示,想要从三维图表上观察出一定的规律,需要一定的空间想象力;

    而三元相图,其实就是用二维平面的1个等边三角形来表征三维数据,三角形的每一条边对应1个维度,将三维的数据映射到二维平面上,观察起来更加的直观

    R语言的vcd 包中提供了 ternaryplot函数,可以方便的进行三元相图的绘制

    代码示例:

    # x y z
    # A1 1 8 5
    # A2 2 9 8
    # A3 3 1 7

    # 假设有3个样本,对应x,y,z 3个维度的值,

    # 将这批数据用矩阵 x 保存

    ## plot

    ternaryplot(x)

    效果图如下:

    从图中可以看到三角形的三个顶点分别对应x,y, z 三个维度,对于从每个点到对边的垂线,这条垂线上标记刻度,

    要注意对于每个维度的值,都进行了归一化,归一化到0-1的范围,所以刻度线上都标记的是0.2, 0.4, 0.6, 0.8

    红色的点每个点代表1个样本,那么样本点的位置是如何确定的呢

    这是从百度文库找到的解释:通过做平行线的方式,唯一确定1个点的位置

     那么从三元相图上我们能够看出什么结果?

    对应每一个样本点,可以看出其三个维度的比例;

    对于多个样本而言,我们可以看到样本的相似性和差异性,在三个维度上组成接近的样本,其位置必然也是相近的

    通过挑选合适的三个维度,我们也能得到类似排序分析的结果,能看出样本大概的一个分类情况;


     

     
  • 相关阅读:
    DapperExtensions 使用教程
    C#事件订阅及触发例子
    01、类与结构的区别
    内网信息搜集
    Anydesk拿下远程桌面
    C++对注册表的操作
    Linux下常见流编辑器的使用
    Typecho1.1反序列化漏洞复现
    Nmap脚本编写
    Github学习
  • 原文地址:https://www.cnblogs.com/xudongliang/p/8276588.html
Copyright © 2011-2022 走看看