ggplot2 中的scale_colour_gradient 与scale_fill_gradient

2024-04-02

我绝对是初学者ggplot2并尝试使用这个包画出漂亮的人物。我正在阅读手册,但我不明白它们之间的区别scale_colour_gradient() vs. scale_fill_gradient()在我的分析中,我将使用“假设”进行观察,因为我不确定我的结论。

这是对我有用的原始代码:

实验1

  erupt <- ggplot(faithfuld, aes(waiting, eruptions, fill = density)) +
    geom_raster() 
  erupt

假设:它使用默认颜色(即蓝色)绘制喷发密度

我想进一步尝试ggplot2's scale_colour_gradient() and scale_fill_gradient()

实验2

 erupt <- ggplot(faithfuld, aes(waiting, eruptions)) +
    geom_raster(aes(fill=density)) +
    scale_colour_gradient(low = "white", high = "black") 
  erupt

现在,我得到了与实验 1 相同的图表。这是否意味着如果我在 ggplot 的美学中使用 fill= xyz,我将设置颜色渐变而不是填充渐变?为了理解我为什么问这个问题,让我们看看实验 3。

实验3

  erupt <- ggplot(faithfuld, aes(waiting, eruptions)) +
    geom_raster(aes(fill=density)) +
    scale_fill_gradient(low = "white", high = "black") 
  erupt

在这里,我唯一改变的是使用scale_fill_gradient代替scale_color_gradient。然而,图表完全不同。它的范围从黑色到白色。

有人可以帮我了解发生了什么事吗?具体来说,我有两个问题:

a) 当我们设置 fill = xyz 时,它设置的是颜色还是填充?

b) 有什么区别scale_fill_gradient and scale_color_gradient?

如果我的问题对您来说太基本了,我深表歉意。我不是专家,还有很长的路要走。


更新:经过讨论,结论如下:

In 实验1:该图仅使用连续变量“密度”进行填充。

In 实验2,我填充“密度”,但然后覆盖“颜色”。因此, ggplot 尝试对栅格图的边框进行着色(因为我覆盖了颜色)并且与填充无关,因为我没有覆盖任何东西。

In 实验3,我正在填充和覆盖,所以我看到白色和黑色的情节。

为了解决这个问题,我做了两件事:

实验2: 修复#1:

    ggplot(faithfuld, aes(waiting, eruptions, fill = density)) + 
geom_raster(aes(colour=density)) + 
scale_colour_gradient(low = "white", high = "red") + 
scale_fill_gradient(low = "white", high = "green") 

OR

fix #2:

    ggplot(faithfuld, aes(waiting, eruptions, fill = density)) + 
geom_raster(aes(colour=density)) + 
scale_colour_gradient(low = "white", high = "black")

另外,为了补充 axeman 的观点,这就是我所做的:

  ggplot(faithfuld, aes(waiting, eruptions, fill = density)) + 
    geom_tile(aes(fill=density, col=density)) +
    scale_colour_gradient(low = "white", high = "red") +
    scale_fill_gradient(low = "white", high = "green") 

在输出中,我们将看到图块的边框根据密度(即红色)进行着色,填充颜色根据绿色进行着色。这样,我们就能够演示填充和颜色的效果。


In ggplot2, color and fill分别映射。color指的是点和线的颜色,而fill指条形填充(即内部颜色)、密度填充等。如果您映射fill=xyz within aes()然后使用scale_color_...,它不会做任何事情,因为你必须控制fill with scale_fill_...。如果你映射color在这种情况下,它将改变密度周围线条的颜色;那么你可以打电话scale_color_...来改变它。

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

ggplot2 中的scale_colour_gradient 与scale_fill_gradient 的相关文章

  • 调用 tidyselect-using 函数时指定点参数,无需指定前面的参数

    这是我在包中使用的函数的简化版本 论证和tidyselect选择变量 this toy function just selects the variables foo lt function dat mtcars expr lt rlang
  • 如何减少 geom_text 重叠

    我的数据集包含超过 500 个对各个运动员在不同地点进行的比赛活动的观察结果 并在足球比赛期间进行记录 下面是我的数据集的示例 其中每个符号都指一个匹配活动 例如 KE踢有效 在 1 分钟时记录Defense Example data df
  • 在 R 中绘制逻辑回归的两条曲线

    我正在 R glm 中运行逻辑回归 然后我设法绘制结果 我的代码如下 temperature glm glm Response Temperature data mydata family binomial plot mydata Temp
  • R闪亮数据表在开始时不显示记录(行)

    我正在构建一个带有数据表的闪亮应用程序 我想要的是启动时不显示任何记录 行 这样您只能看到表格顶部的过滤器 当您开始输入时 会显示行 我在数据表中找不到选项 这可能吗 下面是示例代码 shinyApp ui navbarPage title
  • dplyr / left_join 中的嵌套管链

    在尝试获取分组滞后变量的过程中 仅使用这是不可能的 lag 建议的解决方案是将数据拉出 滞后不同的行 然后重新加入它 我更喜欢在不创建中间对象的情况下执行此操作 并且希望在链中间执行此操作 然而 它似乎没有像我预期的那样工作 问题似乎是使用
  • grep() 搜索数据框的列名

    有没有更清晰 更简单 更直接 更短的方法来做到这一点 其中 df1 是数据框 names df1 grep Yield names df1 我想返回任何包含单词 yield 的列名称 Thanks grep has a value应该适用于
  • 有没有办法在 RStudio 中调试 RScript 调用?

    假设我从命令行运行 R 脚本 如下所示 Rscript prog R x y z 我想检查某一行的代码 目前 我无法在 RStudio 中以交互方式调试它 因为我不知道如何传递参数 由于它设计为从命令行运行 因此如何通过命令行 RStudi
  • 在 R 中进行 Cox 回归后,将预测危险比列添加到数据帧中

    在 R 中运行 Cox PH 回归后 我需要在数据框中添加预测风险比的列 数据框是面板数据 其中 numgvkey 如果公司标识符 和年龄是时间标识符 您可以从此链接下载一小部分日期 https drive google com file
  • R - 正则表达式错误(PCRE 版本)

    我正在尝试使用koRpus在 R 中在运行 RHEL6 的 Linux 服务器上进行词形还原 上周 当我安装了 MRO Microsoft R Open 3 2 3 时 下面的代码效果很好 library koRpus lw c danci
  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 如何调整ggplot直方图的时间刻度轴

    我正在使用一个数据框 其中一列包含POSIXct日期时间值 我正在尝试使用绘制这些时间戳的直方图ggplot2但我有两个问题 我不知道如何设置 binwidthgeom histogram 我想将每个垃圾箱设置为一天或一周 我尝试提供 di
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • 如何更新条件公式?

    让我直接进入示例 考虑以下等式 frml lt formula y a b x z 使用这样的公式规范 例如和AER ivreg 我想更新这个公式 使其显示为 frml2 lt y a b c x z w 但是 我不确定如何更新条件标志之前
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

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

    您好 有没有一种方法可以限制 data frame 中所有列的字符串文本大小 而不必循环遍历每一列并一次使用 str trunc 之类的东西 例如下面的数据框 我可以将所有文本大小限制为仅 5 个字符 而不必一次只执行一列吗 如果有 50
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • R 编程:如何计算数据框中两个单元格之间的差异并将它们保存在新列中

    尝试学习 R 并陷入自相关示例中 我想将 x 的差异与 y 的差异进行回归 我在数据框中有 x 和 y 并且希望将 x2 x1 的差值保存在新列 例如 dx 中 我不知道该怎么做 我拥有的 data1 x y 5 3 8 9 3 1 1 5
  • 将 sf voronoi 多边形裁剪到边界框时出错

    我正在尝试将 voronoi polygons 使用 sf package 创建 剪辑 到边界框 但它引发了我无法定义的错误 我对 R 的空间世界不太有经验 感谢所有帮助 样本数据 stations lt structure list ST

随机推荐

  • 如何将子实例反序列化为父对象而不丢失其特定属性?

    下面分几个类 如何序列化 A 实例的 Json 字符串 其中 PropertyB 包含 SpecPropB1 或 SpecPropB2 以便这些属性保留在 C 对象中 public class A public B PropertyB ge
  • 当客户端读取 HashMap 时如何刷新 HashMap

    我有一个静电HashMap在服务器启动时初始化 客户端在登录时从该地图初始化其数据 现在我需要刷新这张地图 但是客户端可以同时登录并从这张地图中获取数据 当他们阅读时 我可以更改如下所示的地图参考吗 我不能使用synchronized因为它
  • jCenter 和 Bintray 正在关闭。怎么办?如果使用第三方库如何解决?

    jCenter 和 Bintray 正在关闭 那么我们该如何解决这个问题 如果项目中使用了第三方库怎么办 请帮帮我 提前致谢 在你所有的build gradle文件替换jcenter by mavenCentral 或者如果 mavenCe
  • 如何在 fxml 项目中使用 font Awesome (javafx)

    我想在我的项目中使用 font Awesome 字体 但我不知道如何在我的项目中使用 font Awesome 我找到了一些示例 但它们不能在 fxml 中使用 很棒的javafx字体 https bitbucket org Jerady
  • 如何根据类的值将类对象添加到 hashMap 中?

    我正在从数据库中检索一些值 这些值需要添加到列表中 然后根据其值添加到具有特定键的 MAP 中 例如 row 1 name A category 1 row 2 name B category 2 row 3 name C category
  • 当我滚动 UIPickerView 时,如何实时获取所选值

    For example in this image when I m scrolling the UIPickerView to 2012 9 28 what I want is that the text of the black lab
  • 如何在 Silverlight 中的 Border 元素上制作虚线边框?

    我怎样才能让这个Border Silverlight元素的底部边框变成红色dotted里面有一个红色的solid line Border border new Border border CornerRadius new CornerRad
  • WPF 图表:如何折叠线系列中的数据点

    我在图表中有多条线系列 首先绘制图表线 然后沿着线绘制点 这很烦人 而且大点的大小使得大型数据集根本毫无用处 目前我正在为每个系列做这个
  • 选择限制功能不适用于reactjs 复选框形式

    我有一个从 json 获取复选框的 React 组件 复选框的每个部分最多可以包含 5 个复选框 我试图将每个部分中的限制设置为最多 2 个选择 但是它没有按应有的方式工作 主要成分是项目列表 js 复选框来自复选框 js 这是我正在尝试做
  • current->mm 在 Linux 内核中给出 NULL

    我想遍历页表 因此我访问了 current gt mm 但它给出了 NULL 值 我正在研究 linux 内核 3 9 我不明白 current gt mm 怎么会为零 这里有什么我想念的吗 这意味着您处于内核线程中 在Linux中 内核线
  • 用MPI发送size_t类型数据

    在 MPI 中发送 size t 类型数字的最安全方法是什么 例如 我确信它是not将其作为 MPI INT 盲目发送是安全的 MPI LONG 总是有效吗 使用宏怎么样 include
  • 选择看起来像错误/缺失功能的重载时,C# 编译器出现奇怪的行为

    我最近发现 C 编译器的一个有趣的行为 想象一下这样的界面 public interface ILogger void Info string operation string details null void Info string o
  • 使用 C 函数扩展 Numpy

    我正在尝试加速我的 Numpy 代码 并决定实现一个特定的函数 而我的代码大部分时间都在 C 中使用 我实际上是 C 的菜鸟 但我设法编写了一个函数 将矩阵中的每一行归一化为 1 我可以编译它 并用一些数据 在 C 中 测试它 它满足了我的
  • 使用 RxJS 将多个 ajax 请求转换为 Observables

    我正在努力解决某件事 我猜这意味着我误解了并且正在做一些愚蠢的事情 我有一个可观察对象 需要使用它来创建一些对象 将其发送到服务器进行处理 将服务器的结果与我发送的对象结合起来 然后将其转换为可观察对象 所以我想要做什么 我认为 就像是 v
  • 具有 http 身份验证的 Zend SOAP 服务器 WSDL URI

    我正在尝试使用 Zend Soap Server 设置 SOAP 服务 ZF1 我的问题是 WSDL URI 受密码保护 可以通过设置 https 用户名 来访问它 电子邮件受保护 cdn cgi l email protection 作为
  • 使 Python 单元测试因任何线程的异常而失败

    我正在使用单元测试框架来自动化多线程 python 代码 外部硬件和嵌入式 C 的集成测试 尽管我公然滥用单元测试框架进行集成测试 但它的效果非常好 除了一个问题 如果任何生成的线程引发异常 我需要测试失败 这可以通过单元测试框架实现吗 一
  • svn update 没有更新!

    我希望 svn update 用服务器上的文件覆盖我的本地文件 即使我的本地文件有修改 我也想扔掉它们并使用远程存储库上的版本 我怎么做 我试过svn update force但它不起作用 Update 感谢您的回答 所以我使用这样的恢复
  • 纯 Web 应用程序(HTML5 等)的推荐 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • actionbarsherlock 选项卡中的 Google 地图

    我正在尝试让谷歌地图 v2 在我的应用程序中工作 我见过几个示例 展示了如何在活动中打开 SupportMapFragment 这个想法是你的活动会调用setContentView R layout map layout 其中 map la
  • ggplot2 中的scale_colour_gradient 与scale_fill_gradient

    我绝对是初学者ggplot2并尝试使用这个包画出漂亮的人物 我正在阅读手册 但我不明白它们之间的区别scale colour gradient vs scale fill gradient 在我的分析中 我将使用 假设 进行观察 因为我不确