修改ggplot中的viridis调色板

2023-11-30

我试图通过一个主要是数字的因素来为 ggplot 着色,如下所示:

iris %>%
  ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) + 
  geom_point() + 
  scale_color_viridis_d()

我想做的是特例(0,1]值和颜色为红色,但保留其余值的绿色渐变。我知道我可以即时改变颜色但我想知道是否也可以构建一个新的离散调色板,将红色作为其第一种颜色,然后使用渐变,这将使代码更具可重用性。

因此,更普遍的问题是:可以轻松地添加/删除/编辑现有离散调色板中的颜色吗?


这与 @seasmith 的答案基本相同,只是添加了将调色板保存到变量以供以后使用。我经常这样做是为了明确设置NA颜色,然后在多个绘图中使用调色板。

其他包也有类似的功能viridis一个:例如,您可以从以下位置获取 ColorBrewer 调色板RColorBrewer::brewer.pal, Carto调色板来自rcartocolor::carto_pal,或任何一个ggthemes来自与调色板同名的函数。

library(tidyverse)

plasma_pal <- c("red", viridis::plasma(n = 6))

plasma_pal
#> [1] "red"       "#0D0887FF" "#6A00A8FF" "#B12A90FF" "#E16462FF" "#FCA636FF"
#> [7] "#F0F921FF"

iris %>%
    ggplot(aes(Sepal.Length, Sepal.Width, color = cut(Petal.Length, 0:7))) + 
    geom_point() +
    scale_color_manual(values = plasma_pal)

创建于 2018-04-19代表包(v0.2.0)。

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

修改ggplot中的viridis调色板 的相关文章

  • ggplot:如何检索轴标签的值?

    如何提取下面的 ggplot 中用于标记 y 轴和 x 轴的数字 分别为20 30 40 and 10 15 20 25 30 35 Plot From r 统计公司 http r statistics co Top50 Ggplot2 V
  • 非等值连接 - 比较 R 中的两个数据帧

    我想根据第二个数据框中存在的值过滤数据框 例如 匹配第一个数据帧中 BP 列中高于 start pos 列的第一个值且小于 end pos 列或仅小于第二个数据中的 end pos 的行框架 我需要对第二个数据框中的所有值重复此过程 目前
  • 一起使用 R6 类和 foreach() %dopar% 的问题

    当与 foreach 一起使用时 我在 R6 类上遇到问题 可能与环境有关 我使用的是 Windows 假设有两个 R6 类 class1 和 class2 class1 中的 method1 依赖于 class2 例如 请参见下面的示例代
  • R grep:有 AND 运算符吗?

    假设我有以下数据框 User Id Tags 34234 imageUploaded people jpg more comma separated stuff 34234 imageUploaded 12345 people jpg 我如
  • 读取r中不同目录中的多个文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想从不同的目录读取多个 csv 文件 然后将其放入单个数据框中 我有两种目录可供阅读 A LogIIS 文件夹01 文件 csv 在
  • r - 如何在 normalizePath 中指定路径,或解决与其关联的此错误?

    我正在学习 R 并将其安装在我的办公室计算机上 我没有计算机的管理员权限 因为我什至必须致电IT人员进行安装 然后我安装一个包 一开始输入时不起作用 例如 install packages thepackage 错误信息是这样的 Error
  • 如何将表输出复制到剪贴板?

    我试图通过单击按钮将表输出复制到剪贴板 我尝试查看 rclipboard 包 但以我有限的理解 它似乎无法复制输出 我添加了一个actionButton屏幕截图中带有一个图标来显示我想要实现的目标 现在按钮没有任何作用 Code libra
  • tm 包本身是否提供了组合文档术语矩阵的内置方法?

    tm 包本身是否提供了组合文档术语矩阵的内置方法 我在同一语料库上生成了 4 个文档术语矩阵 每个矩阵为 1 2 3 4 克 它们都非常大 200k 10k 因此将它们转换为数据帧然后绑定它们是毫无疑问的 我知道我可以编写一个程序来记录每个
  • 如何在R中将plot转换为ggplot?

    我是 R 新手 我正在尝试将绘图转换为 ggplot plot res s type n main title print lines res s res s output 2014 02 14 51 8460 2014 02 14 44
  • R 中的插补 MICE 仍不存在于数据集中

    运行 MICE 包后 5 个完整插补集中的缺失值数量从 147428 减少到 46093 但不是应该是 0 NA 吗 Thanks 这是我的 MICR 代码 imp mice newdata imputationSet1 complete
  • 使用变量标签作为标题和轴标题时自动化 ggplots

    我对 NSE 和绘图函数有点混淆 我试图在使用变量标签 而不是名称 标记轴等的同时自动绘制一些图 假设我们有一个大型数据集 所有变量都已标记 这里的小例子 library tidyverse library sjlabelled libra
  • 如何更改 ESS 中的智能分配键(“_”到“<-”)绑定

    在 emacs ESS 中 如何正确更改 ess smart S assign 的键绑定 我尝试的是添加 custom set variables ess smart S assign key to my emacs 但这让奇怪的事情发生了
  • 保存 d3heatmap 生成的热图

    我正在尝试保存由d3heatmap https github com rstudio d3heatmap转换为 pdf 文件 但文件总是损坏 library d3heatmap pdf file heat pdf d3heatmap mtc
  • 按钮:带滚动条的下载按钮仅下载几行

    我正在处理超过 100 000 行的表并使用DT包裹 开发版本0 1 56 在 Shiny App 中将其可视化 此外我正在使用DT扩展如下 Buttons 下载不同格式的数据 然而虽然Scroller扩展程序也已激活 我只能下载几行 不是
  • 如何在Shiny中引用ui.R中的反应元素

    我正在使用 ShinyDND 包制作一个具有拖放功能的应用程序 我想将输入中的列表作为 DragSetUI 的参数传递 该函数需要在 ui R 中运行 我尝试了renderUI和uiOutput 它几乎可以工作 但是拖动的元素无法放置在放置
  • 在 RGUI 中自动保存 R 源

    是否可以告诉 RGui 自动保存 R 源代码 以便它们在系统崩溃时不会丢失 我非常怀念这个功能 因为我的系统时不时地崩溃 而且我不想仅仅因为需要这个功能而使用 R Studio 或其他一些 IDE 我喜欢 RGui 提供的简单性 None
  • R - Rstudio - 如果生成警告/错误,则使 R 播放声音

    我正在运行一个循环遍历股票对组合列表的脚本 偶尔 由于对组合之间的数据长度不同而产生错误 脚本会停止运行 我只是将不匹配的股票从考虑中删除 Error in model frame default formula stckY stckX 0
  • 通过另一个函数将数据和列名称传递给 ggplot

    我将直接跳到一个示例并在后进行评论 cont lt data frame value c 1 20 variable c 1 20 1 20 1 5 1 20 2 group rep c 1 2 3 each 20 value variab
  • 在 R 中绘制决策树(插入符)

    我已经训练了一个数据集rf方法 例如 ctrl lt trainControl method LGOCV repeats 3 savePred TRUE verboseIter TRUE preProcOptions list thresh
  • 使用“kde”函数进行 R 中的 5-D 核密度估计

    我想通过使用 R 的 ks 库中的 kde 函数来执行 5 维数据 x y z 时间 大小 的核密度估计 在它的手册中 它说它可以执行核密度估计1 至 6 维数据 手册第 24 页 http cran r project org web p

随机推荐

  • 解析命令调用的输出

    因此 我尝试从 python 执行 shell 命令 然后将其存储在数组中或直接解析管道 shell 命令 我通过 subprocess 命令管道传输 shell 数据 并使用 print 语句验证输出 它工作得很好 a subproces
  • 单击/激活 jQuery UI 选项卡时触发函数?

    我正在使用 jQuery 选项卡 其中一个选项卡中的内容是通过 AJAX 调用检索的 但我不想在单击选项卡 激活 之前触发调用 因为用户可能不一定单击它 最好的方法是什么 jQuery UI 提供select and show选项卡的事件
  • 默认情况下,Java 类会隐式扩展 java.lang.Object [重复]

    这个问题在这里已经有答案了 在本教程中 http www studytonight com java object and classes 我读到java 类可以选择扩展一个父类 默认情况下 它将扩展 java lang Object No
  • 如何在 MATLAB 中使用线性索引为 4-D 矩阵的对角线赋值?

    我有一个 4 维矩阵A尺寸的NxNxPxQ 如何轻松地将每个对角线值更改为 1NxN矢量化方式的二维子矩阵 结合 gnovice 的建议 对元素进行索引的一种简单方法是 N P Q size A get dimensions of your
  • 在下载过程中使用 swingworker 更新 JProgressBar

    问题解决了 非常感谢 Trashgod 和 HoverCraftFullOfEels 我终于通过使用下面的示例并稍微改变它得到了这个概念 更改允许缩放进度条 默认为 100 个单位 再次感谢您的耐心和愿意解决这个问题 意味着很多人 凯特 p
  • 发送大量发布消息:正在进行中的发布过多错误

    这是泛美卫生组织异步客户端 client new MqttAsyncClient appProps getProperty mqtt broker appProps getProperty mqtt clientId new MemoryP
  • 可以解析 HTML 文档并构建 DOM 树(java)

    是否可能以及可以使用哪些工具将 html 文档解析为字符串或文件 然后构建 DOM 树 以便开发人员可以通过某些 API 遍历该树 例如 DomRoot parse myhtml html for tags DomRoot 注意 这是一个
  • 为什么MIPS不能在寻址模式下使用两个寄存器?

    我很好奇为什么我们不允许在 MIPS 中使用寄存器作为偏移量 我知道你can t使用寄存器作为偏移量 如下所示 lw t3 t1 t4 我只是好奇why情况就是如此 是硬件限制吗 或者只是 ISA 的一部分 PS 如果您正在寻找替代方法 请
  • 根据 2 个以上组的百分比随机分配对照组与治疗组

    小猪放弃了我之前的问题python pandas 根据 随机分配对照组与治疗组 感谢 maxU 我知道如何将随机对照组 治疗组分配为 2 个组 但如果我有 3 个或更多组怎么办 例如 df head customer id Group ma
  • 如何用python3生成unicode字符串

    我用过这个 u unicode text utf 8 但是使用 Python 3 时出现错误 或者 也许我只是忘记包含一些内容 NameError global name unicode is not defined 谢谢 Python3
  • 从字符串中提取可变长度的数量

    我想从字符串中提取多个可变长度 该字符串如下所示 used memory 1775220696 我想要1775220696变量中的一部分 对此有很多疑问 但我找不到适合我需要的解决方案 您可以使用cut my val echo used m
  • 从 Java 应用程序启动 OpenVPN [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 是否可以通过 Java 应用程序启动 OpenVPN 如果可能的话 最好的方法是什么 这样它是跨平台的 并且可以在所有安装了 OpenVPN 的平台上运行 你可以像这样用 Jav
  • 在构造函数或类中的粗箭头中绑定

    所以我想知道这之间是否有区别 import React Component PropTypes from react class Example extends Component constructor props super props
  • 仅将函数应用于一个 div 类,而不是全部

    我目前正在网站上的位置页面上工作 并且在显示 隐藏 jquery 效果时遇到问题 下面的 jQuery 激活点击并应用切换 div 的类以显示 隐藏它 非常简单 但是 当我添加更多具有相同类的 div 并单击激活器链接时 它会在所有 div
  • 在某些行/列值处提取子矩阵

    我需要根据行 列索引和切片距离来切片 2D 输入数组 在下面的示例中 我可以从输入矩阵中提取 3x3 子矩阵 但我无法调整此代码以适应我想要的任何搜索距离 而无需手动写下索引 Example import numpy as np creat
  • 寻找具有分段完成/树模型的 QCompleter 示例

    PySide 文档包含此部分具有树模型的 QCompleter PySide QtGui QCompleter 可以在树模型中查找补全 假设任何项目 或子项目或子子项目 都可以通过指定项目的路径明确表示为字符串 然后一次完成一层 让我们以用
  • 为什么有时在 Windows 控制台程序中按 Ctrl+Z 时才会终止输入? [复制]

    这个问题在这里已经有答案了 我知道使用 ctrl z 来表示 EOF 或 EOT 通常已经过时且不推荐 但我只是好奇幕后发生了什么 假设我在 C 中有这样的东西 include
  • Angular 通用参考错误 - KeyboardEvent 未定义

    我在其中添加了 多米诺骨牌 服务器 ts甚至还更新了webpack server config js as module rules test ts js loader regexp replace loader options match
  • 是否可以使用 Streams.intRange 函数?

    我想使用 Streams intRange int start int end int step 来实现反向排序流 然而 似乎 java util Streams 类不再可用 但它仍然在标准库的 rt jar 中 该方法是否在其他类中或被其
  • 修改ggplot中的viridis调色板

    我试图通过一个主要是数字的因素来为 ggplot 着色 如下所示 iris gt ggplot aes Sepal Length Sepal Width color cut Petal Length 0 7 geom point scale