热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++二维矩阵转vector_如何在R语言中建立六边形矩阵热图heatmap可视化

原文链接:http:tecdat.cn?p18879​tecdat.cn这是一个六边形热图可视化程序,主要用到的知识RColorBrewer࿰

原文链接:

http://tecdat.cn/?p=18879​tecdat.cn


这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库。

本文希望SOM的结果以六边形热图可视化。让我向您展示如何在R中创建六边形热图!

4a7023bf6c1a6e685fbabada640cd35a.png

您必须根据自组织神经网络(SOM)的结果来创建自己的变量 。输入变量 Heatmap_Matrix 变量是一个矩阵,可以作为热图的数字表示。

因此,矩阵具有与SOM映射相同的行数和与SOM映射相同的列数,并且热图中的每个值表示一个六边形的值。这里 [1,1] 将成为左下节点(第一行,第一列),[1,2] 将成为右侧的节点, 将成为 [2,1] 第二行中左侧的第一个节点,依此类推。因此,从视觉上看,顺序从左下到右上,而在矩阵中,则从左上到右下。


  1. library(RColorBrewer) #使用brewer.pal

  2. library(fields) #使用designer.colors

  3. #为每个六角形创建多边形的功能

  4. #从一个矩阵开始,该矩阵将作为您的热图的数字表示形式,称为Heatmap_Matrix

  5. x <- as.vector(map_Matrix)

  6. #此矩阵具有与SOM映射相同的行数和与SOM映射相同的列数&#xff0c;并且热图中的每个值表示一个六边形的值

  7. #在这里[1,1]将成为左下节点&#xff08;第一行&#xff0c;第一列&#xff09;&#xff0c;[1,2]将成为右节点[2,1]将成为第二行左侧的第一个节点

  8. #因此&#xff0c;从视觉上看&#xff0c;可以从左下到右上工作

  9. #SOM的行数和列数

  10. Rows <- dim(map_Matrix)[1]

  11. Columns <- dim(map_Matrix)[2]

  12. #为图例腾出空间

  13. par(mar &#61; c(0.2, 2, 2, 7))

  14. #启动绘图窗口&#xff0c;但确实显示绘图上的所有轴或点

  15. plot(0, 0, type &#61; "n", axes &#61; FALSE, xlim&#61;c(0, Columns),

  16. ylim&#61;c(0, Rows), xlab&#61;"", ylab&#61; "", asp&#61;1)

  17. #创建调色板

  18. #我使用designer.colors在Brewer中允许的最大数量的数值之间插入50种颜色

  19. ColRamp <- rev(designer.colors(n&#61;50, col&#61;brewer.pal(9, "Spectral") )

  20. #制作一个向量&#xff0c;其长度&#xff08;ColRamp&#xff09;的bin数在x的最小值与最大值之间.

  21. #接下来&#xff0c;将x中的每个点与ColorRamp中的一种颜色进行匹配

  22. ColorCode <- rep("#FFFFFF", length(x)) #默认为全白

  23. for (i in 1:length(x))

  24. if (!is.na(x[i])) ColorCode[i] <- ColRamp[which.min(abs(Bins-x[i]))]

  25. #在图上实际绘制六角形多边形

  26. offset <- 0.5 #向上移动时六边形的偏移量

  27. for (row in 1: Rows) {

  28. for (column in 0:( Columns - 1))

  29. agon(column &#43; offset, row - 1, col &#61; ColorCode[row &#43; Rows * column])

  30. offset <- ifelse(offset, 0, 0.5)

  31. }

  32. #在右侧添加图例

  33. image(legend.only&#61;TRUE, col&#61;ColRamp, zlim&#61;c(min(x, na.rm&#61;T), max(x, na.rm&#61;T)))
537581f0e4eb2d47972be11505331a98.png

能够读取颜色含义的图例

在最后&#xff0c;创建图例&#xff0c;您将获得与上图类似的热图。

希望我的解释和代码能帮助您在R中创建自己漂亮的热图。


7e635672713c7adaa54616b5f6ac08af.png

最受欢迎的见解

1.R语言动态图可视化&#xff1a;如何、创建具有精美动画的图

2.R语言生存分析可视化分析

3.Python数据可视化-seaborn Iris鸢尾花数据

4.r语言对布丰投针&#xff08;蒲丰投针&#xff09;实验进行模拟和动态

5.R语言生存分析数据分析可视化案例

6.r语言数据可视化分析案例&#xff1a;探索brfss数据数据分析

7.R语言动态可视化&#xff1a;制作历史全球平均温度的累积动态折线图动画gif视频图

8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

9.python主题LDA建模和t-SNE可视化



推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 如何撰写数据分析师(包括转行者)的面试简历?
    CDA数据分析师团队出品,作者:徐杨老师,编辑:Mika。本文将帮助您了解如何撰写一份高质量的数据分析师简历,特别是对于转行者。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • 深度森林算法解析:特征选择与确定能力分析
    本文深入探讨了深度森林算法在特征选择与确定方面的能力。提出了一种名为EncoderForest(简称eForest)的创新方法,作为首个基于决策树的编码器模型,它在处理高维数据时展现出卓越的性能,为特征选择提供了新的视角和工具。 ... [详细]
author-avatar
无极圈颜汐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有