ggplot2 热图,图表之间具有固定比例的颜色条

2024-04-03

我需要绘制 3 个不同的图,设置相同的比例范围颜色。 我有 3 个具有不同值范围的矩阵。

例如:

range(matrixA) 
# 0.60 0.85  
range(matrixB) 
# 0.65 0.95  
range(matrixA) 
# 0.5 1.0

我希望对图进行相同的颜色填充。例如,对于差异图中的所有 0.8 值,如果在第一个图中 0.8 橙色,我希望不同图中的所有 0.8 值都是相同的橙色。

我此刻的问题是:

在第一个图中,最大值的颜色是红色,然后值 0.85 是红色。

在第二张图中,最大值为红色,但在本例中最大值为 0.95,就会出现问题。

我的代码:

mat.melted <- melt(matrixA)
colnames(mat.melted) <- c("p","c","v")
p <- ggplot(mat.melted, aes(x=c,y=p,fill=v) + 
         geom-tile() + 
         scale_fill_gradintn(limits = c(min(as.vector(matrixA)), max(as.vector(matrixA))), 
                             colors = c("yellow","orange","red"))

您需要为所有这些设置相同的范围(颜色条的限制)并指定颜色。

rng = range(matrixA, matrixB, matrixC)

并将其添加到您的ggplot code:

g + scale_fill_gradient2(low="green", mid="lightblue", high="red", #colors in the scale
               midpoint=mean(rng),    #same midpoint for plots (mean of the range)
               breaks=seq(0,1,0.25), #breaks in the scale bar
               limits=c(floor(rng[1]), ceiling(rng[2])))

Example:

下面是一个可以帮助您获得所需内容的示例:

x <- matrix(60:85, 5)/100
y <- matrix(65:95, 5)/100
z <- matrix(50:100, 5)/100


rng = range(c((x), (y), (z)))

library(reshape)
library(ggplot2)

ggplot(data = melt(x)) + geom_tile(aes(x=X1,y=X2,fill = value)) +
  scale_fill_gradient2(low="green", mid="lightblue", high="red", #colors in the scale
                   midpoint=mean(rng),    #same midpoint for plots (mean of the range)
                   breaks=seq(0,1,0.25), #breaks in the scale bar
                   limits=c(floor(rng[1]), ceiling(rng[2]))) + #same limits for plots
                   ggtitle("X")

ggplot(data = melt(y)) + geom_tile(aes(x=X1,y=X2,fill = value)) +
  scale_fill_gradient2(low="green", mid="lightblue", high="red", 
                   midpoint=mean(rng),   
                   breaks=seq(0,1,0.25), 
                   limits=c(floor(rng[1]), ceiling(rng[2]))) +
                    ggtitle("Y")                  
  
ggplot(data = melt(z)) + geom_tile(aes(x=X1,y=X2,fill = value)) +
 scale_fill_gradient2(low="green", mid="lightblue", high="red", 
                   midpoint=mean(rng),    
                   breaks=seq(0,1,0.25), 
                   limits=c(floor(rng[1]), ceiling(rng[2]))) +
                    ggtitle("Z")   

这会给你:

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

ggplot2 热图,图表之间具有固定比例的颜色条 的相关文章

随机推荐

  • MySQL:索引可变长度的json数组?

    我想做一个tags类型列json e g id tags 1 tag1 tag2 tag3 2 tag1 tag3 tag5 tag7 3 tag2 tag5 我想为每个索引tag在数组中 不知道数组的长度 可变长度 那么如果我查询包含的行
  • 将大量数据从 NIST 更改为 RIFF wav 文件

    所以 我正在编写一个语音识别程序 为此 我从 TIMIT 下载了 400MB 的数据 当我打算读取 wav 文件时 我尝试了两个库 如下所示 import scipy io wavfile as wavfile import wave fs
  • 向客户展示应用程序的测试版

    我可以向客户发送可以在模拟器中运行的 iOS 应用程序的测试版吗 我可以在 Mac 上仅安装模拟器 不带 Xcode 吗 实际上 我需要一种有效的方法来向他发送应用程序的测试版 而不必在每次更新时与他见面 另外 3 有没有办法安装我在 iO
  • 当指定 -g 时,gcc 会定义什么吗?

    很快 我想知道 gcc 或 g 我需要它C 但也对 c 感到好奇 定义了任何特殊符号 如果 g已启用 可以 如果是的话 是什么符号 在搜索过程中我发现 DEBUG是手动定义的 手动我的意思是 D DEBUG 并且是 Visual C 程序员
  • 如何列出 docker 容器中包含的所有应用程序?

    我已经下载了一个 docker 容器 它使用几种不同类型的软件对输入文件执行多种不同的操作 即对齐 变体调用等 如何找出 docker 容器 图像的内容是什么 抱歉 如果这是微不足道的 我对 docker 完全陌生 有 至少 三种方式来解释
  • 错误:尝试在主机“localhost:27017”上运行命令“saslStart”时出现网络错误

    当我跑步时mongo我可以使用列出数据库show dbs命令 并执行写入和读取操作 但是当使用客户端 Robot 3T 时 我收到下一个错误 Error Network error while attempting to run comma
  • Python - 使用线程或队列迭代调用函数的 for 循环

    我对 python 相当陌生 正在制作一个脚本 允许将其他程序的点云数据引入 Autodesk Maya 我的脚本运行良好 但我想做的是让它更快 我有一个 for 循环 它遍历编号文件的列表 IE datafile001 txt dataf
  • 兑换代币代码 facebook-c#-sdk

    我正在使用 Facebook C Sdk v5 0 3 在 vb net 中创建一个非画布 Web 表单应用程序 但在将返回的 facebook 代码交换为 access token 时遇到问题 有人有我可以看的示例 C 或 vb net
  • 在 WooCommerce 管理新订单自定义字段中加载用户自定义数据

    灵感来自Woocommerce 可编辑自定义结帐字段和 get formatted shipping address https stackoverflow com questions 61522677 woocommerce editab
  • apache poi:如何创建带有条形图和折线图的图表?

    是否可以在 apache poi 中创建一个包含条形图和折线图的图表 你可以找个例子here https blogs office com en us 2012 06 21 combining chart types adding a se
  • 填充网络表单的最佳日历弹出窗口是什么?

    我希望能够在选择日期后进行 HTTP 调用来更新某些选择框 我希望能够控制更新文本框 以便我知道何时发生 真正的 更改 如果选择了相同的日期 理想情况下 我会调用一个函数来弹出日历 并能够在填充文本框之前评估日期 这样我就可以在进行服务器调
  • 将多个项目放在相对布局中居中而不将它们放入容器中?

    我有一个包含一对并排按钮的相对布局 我希望它们在布局中居中 我可以将按钮放在 LinearLayout 中并将其居中放在relativelayout 中 但我想保持 xml 尽可能干净 这是我尝试过的 这只是将 应用 按钮放在中间 将 撤消
  • 添加具有现有列名称的新列

    我正在处理一个数据框 如下所示 FID geometry Code w1 w2 0 12776 POLYGON 1 350000000000025 53 61540813717482 12776 0 1 1 13892 POLYGON 6
  • 在基本层面上,eval-parse 在 R 中做什么?

    我已经看到在循环或 apply 函数中使用 eval parse 的参考 但我仍然不清楚如何使用它 为了帮助像我这样的初学者理解它 有人可以解释为什么下面的第一部分 没有 eval parse 有效 而第二部分 有它 不起作用 这是 eva
  • Poetry能否根据对应C库的版本自动选择包版本

    我将使用 GDAL 作为具体示例 为了安装gdalPython 包 您必须先安装 GDAL C 库 您还必须安装 Python 版本gdal以匹配您安装的 C 库的版本 gdal config version 3 2 0 lt this i
  • 有没有办法让 WPF 应用程序尊重 Windows 10 中深色/浅色主题的系统选择?

    Windows 10最近添加了深色模式 有什么方法可以让我的 WPF 应用程序尊重此设置吗 最好是一个可以自动翻转它的开关 但如果没有 我想我可以在某处读取系统设置并切换到我的代码或其他东西中的备用主题 没有直接的 API 事件来检测 wp
  • # 符号的 HTML 字符实体是什么?

    符号的 HTML 字符实体是什么 我四处寻找 英镑 不断返回货币 哈希 和 数字 但我尝试的似乎没有变成正确的字符 您可以在以下位置搜索单个字符 文件格式信息 http www fileformat info info unicode ch
  • T-SQL:DROP 表级联约束等效吗?

    在 Oracle 中 我可以发出 DROP TABLE 级联约束 它不会抱怨 FK 等 T SQL 中有等效的吗 对于那些希望获得更普遍适用的答案的人 这将找到约束 删除它 然后删除列 感谢蒂姆 伦汀并投票如何查找默认约束的名称 https
  • Erlang 进程和消息传递架构

    我手头的任务是读取大文件的行 处理它们 并返回有序结果 我的算法是 从评估工作负载的主进程开始 写在文件的第一行 生成工作进程 每个工作进程将使用 pread 3 读取文件的一部分 处理这部分 并将结果发送给 master master接收
  • ggplot2 热图,图表之间具有固定比例的颜色条

    我需要绘制 3 个不同的图 设置相同的比例范围颜色 我有 3 个具有不同值范围的矩阵 例如 range matrixA 0 60 0 85 range matrixB 0 65 0 95 range matrixA 0 5 1 0 我希望对