Plotly绘制交互3D PCA图

您所在的位置:网站首页 r语言绘制三维pca图 Plotly绘制交互3D PCA图

Plotly绘制交互3D PCA图

2023-05-31 01:04| 来源: 网络整理| 查看: 265

昨天在做一个转录组的项目,在开始差异分析之前需要看下材料分组是否合理,重复怎样,这时需要过滤掉背景之后用PCA看下结果,2维的PCA很好做,算出PCA结果后用ggplot::geom_point选择PC1,PC2(或者其他)画.偶然在网上看见过3D的PCA图,确实多一个维度是否原来在二维平面重叠在一起的点在z坐标上是否会分开? 于是就开始鼓捣3D可交互的PCA。

官网例子

https://chart-studio.plotly.com/~btsui/23/#/官网例子

我们来扒一下这个玩意实现的代码,看看需要怎么做。

代码地址:R代码地址这里边的信息太多了,大家还是直接点传送门过去吧…这里发现官网提供的代码分了这么几块:

编写trace,其实每个trace就是每个处理(或者样品等),比如你做的case/control类型的转录组,那么就对应两个trace。怎么理解这个trace(轨迹),在后面可以看到trace内的信息最终用add_trace加到图里面,这里的add_系列参数可以理解类比为ggplot中的图层。

把trace写入一个list

编写layout

第一部分就是scene(场景)坐标轴,看代码这里定义了x,y,z坐标轴的信息,坐标轴的title和type

第二部分是camera(镜头)镜头初始视角

第三部分是aspectmode 场景方式

第四部分是aspectratio

如何理解3,4两个参数:property aspectmodeIf “cube”, this scene’s axes are drawn as a cube, regardless of the axes’ ranges. If “data”, this scene’s axes are drawn in proportion with the axes’ ranges. If “manual”, this scene’s axes are drawn in proportion with the input of “aspectratio” (the default behavior if “aspectratio” is provided). If “auto”, this scene’s axes are drawn using the results of “data” except when one axis is more than four times the size of the two others, where in that case the results of “cube” are used.机翻如果“cube”,这个场景的轴被画成一个立方体,与轴的范围无关。如果是“data”,这个场景的坐标轴是根据坐标轴的范围绘制的。如果“manual”,该场景的轴线将根据输入的“ aspectratio”(如果提供“ aspectratio”,则为默认行为)按比例绘制。如果是“自动”,这个场景的轴线是使用“数据”的结果绘制的,除非一个轴的大小是另外两个轴的四倍以上,在这种情况下,使用“立方体”的结果。

画图

逐渐加trace,然后layout

看下官网示例代码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071library(plotly) ## 加载plotly包# 示例代码# 第一步编辑tracetrace1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3