带频率图的 R 热图类型图

2024-05-08

I am trying to create a plot like the following: heatmap with freq plot

我已经使用 ggplot2 中的 geom_tile() 粗略地得到了左侧图,但我无法弄清楚如何生成右侧图以及如何将两个图放在一起。

Example:

tt <- structure(list(Gene = structure(c(3L, 1L, 2L, 4L, 4L, 4L, 2L, 3L, 1L, 3L, 1L, 2L, 1L, 2L, 4L), .Label = c("A", "B", "C", "D"), class = "factor"), tumour.sample = structure(c(1L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 3L, 3L, 4L, 4L, 2L), .Label = c("1", "5", "3", "4", "2", "6"), class = "factor"), Effect = c("missense", "missense", "missense", "missense", "missense", "missense", "missense", "nonsense", "missense", "missense", "missense", "missense", "missense", "nonsense", "missense")), .Names = c("Gene", "tumour.sample", "Effect"), row.names = c(1L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 18L), class = "data.frame")
ggplot(tt, aes(x=Gene, y=tumour.sample)) + geom_tile(aes(fill=Effect)) + theme(axis.text.x = element_text(angle = -90, hjust = 0))

做到这一点的最佳方法是什么?

目前,热图顶部没有标签,并且框也不是方形的。


要获得侧图,您可能需要转换数据。这是一个粗略的开始(使用tt以上数据)

p1<-ggplot(tt, aes(x=Gene, y=tumour.sample)) + 
    geom_tile(aes(fill=Effect)) + 
    theme(axis.text.x = element_text(angle = -90, hjust = 0)) + 
    scale_fill_discrete(guide=F) 

#transform and summarize
rs<-do.call(rbind, Map(function(a,b) {
    data.frame(s=b, i=seq_along(a), eff=sort(a))},
lapply(split(tt, tt$tumour.sample), '[[', "Effect"), 
levels(factor(tt$tumour.sample))))

#make side plot
p2<-ggplot(rs, aes(x=i, y=s)) + 
    geom_tile(aes(fill=eff)) +
    theme(axis.text.y=element_blank(), axis.title.y=element_blank()) 

#print both plots
grid.arrange(p1, p2, ncol=2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带频率图的 R 热图类型图 的相关文章

随机推荐

  • 我如何解决语义错误:“类没有名为..”的关联

    我正在关注 symblog symfony2 教程的第 5 部分 http tutorial symblog co uk docs customising the view more with twig html 标题下 主页 博客和评论
  • 是否可以在 gnuplot 中设置标签相对于键的位置?

    我的情节的本质是这样的 绝对的标签并不能真正发挥作用 我无法限制 y 中的范围 所以想知道是否有办法将我的标签文本包含在键内或将其相对于键放置 即下面 set term png enhanced size 1024 768 set titl
  • 运行时错误:范围自动筛选上的“1004”

    我想用 VBA 做什么 使用数组过滤表并删除行 我的数组有 4 个元素 在循环中更改为有 5 个不同的集合 正在过滤的列有 5 个元素 我只想得到 1 这是一个循环 它将创建 5 个报告 每个报告根据第 29 列过滤不同的元素 如果在调试模
  • 如何在调用处替换内联函数代码?

    我想知道内联函数调用是如何被内联代码替换的 我在一些书中读到编译器可能会将内联函数视为普通函数 任何人都可以解释内联函数是如何工作的 来自 C 常见问题解答 http www parashift com c faq lite inline
  • 属性编辑器未向 PropertyEditorManager 注册:自定义标记调用时出错

    调用我的时出现以下错误testtag jsp org apache jasper JasperException 无法将属性 att1 的字符串 转换为类 javax servlet jsp tagext JspFragment 属性编辑器
  • 缓动不适用于toggleClass() 或addClass()

    我有一个在页面上显示和隐藏实用工具栏的功能 我想将其动画化 这不是动画 类 标志 是空的 min 类只是更改背景图像以及实用工具栏的高度和绝对位置 我究竟做错了什么 document ready function var ubar ccUt
  • 为什么 Java BufferedReader() 不能正确读取阿拉伯文和中文字符?

    我正在尝试读取一个每行包含英文和阿拉伯字符的文件以及另一个每行包含英文和中文字符的文件 然而 阿拉伯文和中文的字符无法正确显示 它们只是显示为问号 知道我该如何解决这个问题吗 这是我用于阅读的代码 try String sCurrentLi
  • 比较 C# 中 DateTime 的二进制表示形式

    我有一个DateTime表示为长 8 个字节 来自DateTime ToBinary 我们称之为dateTimeBin 是否有一种最佳方法可以删除时间信息 我只关心日期 以便我可以将其与一天的开始进行比较 假设我们将此样本值作为一天的开始
  • 为什么 Rust 不允许在一种类型上复制和删除特征?

    From the book https doc rust lang org book 2018 edition ch04 01 what is ownership html stack only data copy Rust 不允许我们用C
  • 如何在 Mac OS X 10.9.5 上以编程方式读取低功耗蓝牙传输的数据?

    我正在尝试阅读蓝牙低功耗 http www bluetooth com Pages low energy tech info aspx使用 Ruby 以编程方式传输数据 低功耗蓝牙技术不支持标准规范 v4 0 中的串行端口配置文件 SPP
  • 如何使用 Typescript 从 mui 扩展调色板

    我正在尝试扩展 mui 提供的调色板 覆盖主色 次要颜色等效果很好 但如果我想在之后创建一组自定义颜色 我不知道如何使其工作 有很多没有打字稿的例子 但是当这个人进入游戏时 事情就变得更加棘手 假设我有这个 主题 tsx palette p
  • CSS 轮廓宽度不起作用

    我正在尝试将输入元素的轮廓宽度设置为焦点 无论我的设置如何 轮廓宽度都保持不变 就像它是无法更改的默认设置一样 这是来自 codepen 的示例 http codepen io FrenkyB pen mEaEyL editors 1100
  • 如何防止 Keras 在训练期间计算指标

    我正在使用 Tensorflow Keras 2 4 1 并且有一个 无监督的 自定义指标 它将我的几个模型输入作为参数 例如 model build model returns a tf keras Model object my met
  • Firestore 安全规则:在请求上使用 hasOnly 来检查是否仅更新特定字段

    我正在设置 Firestore 安全规则 但遇到一个问题 即我想使用 hasOnly 函数限制仅更新文档中的一个特定字段 问题是我使用模拟器不断得到 拒绝 结果 我肯定做了一些简单的错误 我试图防止有人可以更新文档中的其他字段update
  • 存储库和服务层之间的区别

    我查看了一些相关的问题 但仍然没有看到存储库和服务层之间有太大区别 所以给出的例子我想它应该看起来像这样 如果不是请告诉我为什么 public interface ProductRepository extends CrudReposito
  • 私有方法真的安全吗?

    在Java中private访问修饰符被认为是安全的 因为它在类外部不可见 那么外界也不知道这个方法 但我认为Java反射可以用来打破这个规则 考虑以下情况 public class ProtectedPrivacy private Stri
  • 从 Puppeteer 中的 page.evaluate 获取元素? [复制]

    这个问题在这里已经有答案了 我正在与Node js and 傀儡师第一次 找不到输出值的方法page evaluate到外部范围 我的算法 Login Open URL Get ul 循环每个li然后点击它 等待innetHTML要设置并添
  • Swift TTS,无音频输出

    我尝试在我的应用程序 TTS 中集成 但如果单击按钮 则没有音频输出 这是按钮代码 struct VocabDetailView View var body some View HStack Button Play readOut text
  • 如何使用类中的常量作为 php 函数中的参数定义?

    我有一堂课 class FetchMode const FetchAll 0 const FetchOne 1 const FetchRow 2 和一个函数 function getRecordSet FetchMode FetchMode
  • 带频率图的 R 热图类型图

    I am trying to create a plot like the following 我已经使用 ggplot2 中的 geom tile 粗略地得到了左侧图 但我无法弄清楚如何生成右侧图以及如何将两个图放在一起 Example