具有连续彩虹色的热图

2023-11-23

首先,我不得不说,我在 stackoverflow 和其他地方读到了很多关于 heatmap 和 ggplot2 的帖子。但我的问题还没有解决。

我有以下数据集:

   Var1   Var2 value
1 -197.5 -197.5     0
2 -192.5 -197.5     0
3 -187.5 -197.5     0
4 -182.5 -197.5     0
5 -177.5 -197.5     0
6 -172.5 -197.5     0
.....

该值应该是颜色,并且右侧的图例会很好。

library(ggplot2)
ggheatmap <- ggplot(data = dat.plot, aes(x=Var1, y=Var2, fill=value)) + 
  geom_raster()+
  scale_fill_gradientn(colours=rainbow(100))+
  theme(axis.text.x = element_text(angle = 0))+ 
  coord_fixed()
print(ggheatmap)

结果是:

Plot/Heatmap

我想要一个从红色=高到橙色、黄色、绿色、浅蓝色、深蓝色=低的“正常”彩虹等级,而不给出固定的离散颜色,例如使用scale_fill_gradient2。 我想知道为什么“彩虹”以红色开头=高端以其他红色结尾......

另一个问题:如何添加一些东西来“平滑”热图,这样人们就不会到处看到“边缘”?


简短回答:功能rainbow() 发疯了当你经过时100正如你所要求的100不同的颜色。

你应该做什么:通过n to rainbow()您想要多少种颜色。如果你想从蓝色变成红色,那么你还必须用函数包装它rev().

library(egg)
library(ggplot2)
library(reshape2)

# Heatmap number of rows/columns
Nvalue <- 1e2
# n for colors passed to function rainbow
nColor <- c(1:10, seq(20, 100, 20))
# dummy data
df <- melt(matrix(rnorm(N^2), N))

plotList <- list()
for(i in seq_along(nColor)) {
    plotList[[i]] <- ggplot(df, aes(Var1, Var2, fill = value)) + 
        geom_raster() +
        scale_fill_gradientn(colours = rev(rainbow(nColor[i]))) +
        labs(title = paste0("rainbow(", nColor[i], ")"),
             x = NULL,
             y = NULL,
             fill = NULL) +
        theme_void()
}

ggarrange(plots = plotList)

enter image description here

Edit:

在 OP 指定他想要的颜色之后,传递十六进制向量应该可以工作:

hex <- c("#FF0000", "#FFA500", "#FFFF00", "#008000", "#9999ff", "#000066")
ggplot(df, aes(Var1, Var2, fill = value)) + 
        geom_raster() +
        scale_fill_gradientn(colours = rev(hex)) +
        labs(x = NULL,
             y = NULL,
             fill = NULL) +
        theme_void()

enter image description here

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

具有连续彩虹色的热图 的相关文章

  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • 限制数据框中所有单元格的字符串长度?

    您好 有没有一种方法可以限制 data frame 中所有列的字符串文本大小 而不必循环遍历每一列并一次使用 str trunc 之类的东西 例如下面的数据框 我可以将所有文本大小限制为仅 5 个字符 而不必一次只执行一列吗 如果有 50
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 逻辑回归/二项式的 glmnet 误差

    当尝试将 glmnet 与 family binomial 配合以进行逻辑回归拟合时 出现此错误 gt data lt read csv DAFMM HE16 matrix csv header F gt x lt as data fram
  • fread 将空导入为 NA

    我正在尝试导入带有空白的 csv 读取为 不幸的是他们都读作 NA now 为了更好地演示问题 我还展示了如何NA NA and 都映射到同一事物 除了最底部的示例 这将妨碍简单的解决方法dt is na dt lt gt write cs
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 为什么这些数字不相等?

    下面的代码显然是错误的 有什么问题 i lt 0 1 i lt i 0 05 i 1 0 15 if i 0 15 cat i equals 0 15 else cat i does not equal 0 15 i does not eq
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 替换字符串/文本中“从第 n 次到最后一次”出现的单词

    这个问题以前曾被问过 但尚未得到令提问者满意的答案 https stackoverflow com questions 36368712 how to use stringrs replace all function to replace
  • 检查单词是否存在于英语词典 r 中

    我正在对多个进行一些文本分析resume生成一个wordcloud using wordcloud包装连同tm用于在 R 中预处理文档语料库的包 我面临的问题是 检查语料库中的单词是否具有某种含义 即 它属于英语词典 如何一起挖掘 处理多份
  • r 谷歌搜索结果计数检索[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 用关键字 健康医院 搜索谷歌会返回大约 1 150 000 000 个结果 如何在 R 中以编程方式获得此计数 我见过这个lin ht
  • 迭代字符串 R 的字符

    有人可以解释一下为什么这不会在 R 中单独打印所有数字 numberstring lt 0123456789 for number in numberstring print number 字符串不就是字符数组吗 在 R 中该怎么做 In
  • 根据R中的前一行和当前行按组计算

    我可以根据 R 中的前一行和当前行进行计算 对于此数据框 df A B 1 2 2 2 2 3 3 4 5 5 B2 A2 0 5 B1 我可以使用这段代码来计算这个函数 for i in 2 nrow df B i lt 1 2 B i
  • 如何一次导入多个 .csv 文件?

    假设我们有一个包含多个 data csv 文件的文件夹 每个文件包含相同数量的变量 但每个文件来自不同的时间 R 中有没有办法同时导入它们 而不必单独导入它们 我的问题是 我有大约 2000 个数据文件需要导入 并且必须使用以下代码单独导入
  • 使用 purrr、broom 从许多单变量模型中获得整洁的输出

    我有一个由二进制结果列组成的数据框 y 和多个独立的预测列 x1 x2 x3 我想运行许多单变量逻辑回归模型 例如y x1 y x2 y x3 并将每个模型的指数系数 比值比 95 置信区间和 p 值提取到数据框 标题的行中 在我看来 使用

随机推荐

  • 理解 git Cherry-pick

    来自 svn 背景 我几乎从不分支 因为切换速度 缺乏 以及将分支合并回主干需要一个小时或更长时间 有时 如果我需要修复网站上的问题 我会在主干中进行更改 它将与以前的更改或新功能一起存在 然后转到该文件并执行 svn up path to
  • 在 Perl 正则表达式替换中使用 $1 与 \1 有什么区别?

    我正在调试一些代码 想知道 Perl 正则表达式替换中的 1 和 1 之间是否有任何实际差异 例如 my package name Some Package ButNotThis package name s w w 1 print pac
  • 如何修复错误:此服务需要项目 ID,但无法确定

    我正在尝试从 AppEngine 将数据插入 Google 数据存储区 但收到错误 java lang IllegalArgumentException A project ID is required for this service b
  • numpy fromiter 与列表生成器

    import numpy as np def gen c c np ones 5 dtype int j 0 t 10 while j lt t c 0 j yield c tolist j 1 What I did res np arra
  • 使用选择查询更新表

    所以我在这里读了一些帖子 但我似乎无法在 MySQL 上运行它 几乎我有一个带有 itemid 的记录 计数 我想根据 itemid 更新到我的 items 表中 items popularity 这是我尝试过的 Update items
  • Bash 中命令替换的变量赋值的退出代码

    我对明确执行变量赋值并使用命令替换时命令将返回什么错误代码感到困惑 a false echo 它输出1 这让我认为变量赋值不会清除最后一个错误代码或产生新的错误代码 但是当我尝试这个时 false a echo 它输出0 显然这就是a 返回
  • 有人使用 Swing 的“swingx”扩展吗? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我在这里看到了 swingx 的提及和提及 但是 每次
  • 图像缩小算法

    您能帮我找到正确的图像调整大小算法吗 我有一个数字的图像 最大尺寸为 200x200 我需要获得尺寸为 15x15 甚至更小的图像 图像是单色的 黑白 结果应该是相同的 这就是关于我的任务的信息 我已经尝试过一种算法 这里是 xscale
  • 为什么我不能在动态 SQL 的 DDL/SCL 语句中使用绑定变量?

    我正在尝试使用绑定变量在动态 SQL 中执行 SQL 命令 this procedure is a part of PL SQL package Test Pkg PROCEDURE Set Nls Calendar calendar IN
  • 在android模拟器中使用麦克风(Java + Android初学者)

    我在这里读到在 Android 模拟器中使用麦克风可能是可能的 所以我决定尝试一下 尽管答案这个问题说这是不可能的 我复制 粘贴了中提供的代码Android 开发者网站并添加了
  • Django循环导入错误

    我是 Django 新手 我刚刚在 windows vista 上为 python 2 5 安装了 v 1 3 1 使用 setup py install 当我启动 python shell 并尝试导入 django db 时 出现以下循环
  • 使用 H264 编解码器将视频保存在 opencv 中

    我在用opencv python 4 5 1 48 and python3 9码头工人 我想以 h264 格式保存视频 这是我保存视频的功能 import cv2 def save video frames fps 30 video pat
  • Scala中的类型类模式不考虑继承?

    在某些情况下 我正在使用类型类设计 API 但是我遇到了隐式解析的问题 如下所示 如果有一个类型为A的隐式对象但有一个类型为B extends A传递给该方法 则无法找到隐式对象 有没有办法做到这一点 或者调用者是否必须将隐式对象放入每个子
  • MKMapView MKCircle 渲染半径太大的圆

    我面临着 MKCircle 外观的奇怪行为 基本上我试图画一个半径为 8500 公里 任意中心的圆 这是我的代码 private func addCircle mapView removeOverlays mapView overlays
  • 我需要在Python中生成1000个唯一的名字

    我需要生成 1000 个唯一的名字并将它们存储在列表中 我正在使用 Python faker 但得到了很多重复的值 import random from random import shuffle from faker import Fak
  • 使用 Jackson 将 Java 对象序列化为 JSON 时抑制包装器对象

    我有一个以 JSON 形式返回列表的 Web 服务 它使用 Jackson 将 Java POJO 列表映射到 JSON 问题是 JSON 表示在数组周围有一个包装对象 而我只想要该数组 即 我得到这个 optionDtoList 当我真正
  • Hadoop JobConf 类已弃用,需要更新示例

    我正在编写 hadoop 程序 我真的不想使用已弃用的类 在网上的任何地方我都找不到更新的程序 org apache hadoop conf 配置 班级 代替 org apache hadoop mapred JobConf class p
  • 无法生成类,因为找不到具有复杂类型的顶级元素

    我正在尝试使用 XSD EXE 工具从 xsd 文件创建一个类 但由于某种原因我收到此错误 警告 无法生成类 因为没有顶级元素 发现复杂类型 我环视了堆栈 发现我可以在复杂类型元素上放置一个类型 但我似乎无法让我工作 这是 xsd 文件
  • 使用应用函子 |@| 进行 Scalaz 验证不工作

    我正在尝试在我的应用程序中使用 Scalaz 7 Validation 但是 我在获取时遇到问题 应用函子来合并我的失败 这是我的代码 type ValidationResult ValidationNel String Unit def
  • 具有连续彩虹色的热图

    首先 我不得不说 我在 stackoverflow 和其他地方读到了很多关于 heatmap 和 ggplot2 的帖子 但我的问题还没有解决 我有以下数据集 Var1 Var2 value 1 197 5 197 5 0 2 192 5