与 ggplot2 中的变量级别相对应的等高线级别

2024-04-27

我正在尝试用 ggplot2 绘制等高线图,事实证明它比我想象的要困难一些。使用iris数据集我能够生成这个图:

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
  stat_density2d(geom="polygon", aes(fill=..level..))

我的问题是我似乎无法弄清楚如何显示原始数据而不是密度值Sepal.Width价值观。这是我尝试过的:

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, z=Sepal.Width)) +
  geom_tile(aes(fill=Sepal.Width))+
  stat_contour(aes(colour=..level..)) 

这会产生一个特别奇怪的错误消息:

 Warning message:
 Computation failed in `stat_contour()`:
 (list) object cannot be coerced to type 'double' 

我也尝试过这个:

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
  stat_density2d(geom="polygon", aes(fill=Sepal.Width))

最后这个:

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
  geom_tile()

谁能推荐一种在 ggplot2 中生成等值线图的好方法,其中变量本身的值产生等值线的级别?

UPDATED

来自stat_contour例子:

# Generate data
library(reshape2) # for melt
volcano3d <- melt(volcano)
names(volcano3d) <- c("x", "y", "z")

# Basic plot
ggplot(volcano3d, aes(x, y, z = z)) +
 stat_contour(geom="polygon", aes(fill=..level..))

工作得很好,看起来也很棒。但如果我将其完全应用于虹膜示例,如下所示:

ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
  stat_contour(geom="polygon", aes(fill=..level..))

我收到此错误消息:

Warning message:
Computation failed in `stat_contour()`:
(list) object cannot be coerced to type 'double'

这些都是具有相似结构的数据帧,因此我无法弄清楚导致此问题的两者之间有什么不同。


最终的解决办法就是使用这种方式akima插值包然后ggplot2用于最终绘图。这是我使用的方法:

library(ggplot2)
library(akima)
library(dplyr)

interpdf <-interp2xyz(interp(x=iris$Petal.Width, y=iris$Petal.Length, z=iris$Sepal.Width, duplicate="mean"), data.frame=TRUE)

interpdf %>%
  filter(!is.na(z)) %>%
  tbl_df() %>%
  ggplot(aes(x = x, y = y, z = z, fill = z)) + 
  geom_tile() + 
  geom_contour(color = "white", alpha = 0.05) + 
  scale_fill_distiller(palette="Spectral", na.value="white") + 
  theme_bw()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 ggplot2 中的变量级别相对应的等高线级别 的相关文章

  • 提取所有列组中共有的元素

    我有一个 R 数据集 x 如下 ID Month 1 1 Jan 2 3 Jan 3 4 Jan 4 6 Jan 5 6 Jan 6 9 Jan 7 2 Feb 8 4 Feb 9 6 Feb 10 8 Feb 11 9 Feb 12 10
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • 枚举所有可能的二元组星座

    我正在寻找一种方法来枚举 n 个成员的所有可能的两人组星座 例如 对于 n 4 个成员 以下 3 个独特的组星座是可能的 请注意 组内成员的顺序和组顺序都不重要 1 2 3 4 1 3 2 4 1 4 2 3 例如 对于 n 6 个成员 可
  • 如果指定了多个存储库,install.packages 的行为是什么?

    从文档中并不清楚如果在 install packages 中指定了多个存储库会出现什么行为 我的直觉告诉我 它将尝试第一个存储库 如果找不到包 它将尝试第二个存储库 依此类推 不幸的是 情况似乎并非如此 我看到的是 只尝试了第一个 并返回错
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • R:构建二阶转移矩阵和得分序列

    其他问题 有另一个问题 https stackoverflow com questions 29728436 fit and evaluate a second order transition matrix markov process
  • 如何在R中的2行之间交换多个值

    我有一个大小为 10x100 的矩阵 如何交换前 30 列中第 1 行和第 2 行之间的值 我们可以反转前两行的行索引以及通过采取序列创建的列索引rounded 30 总列数用于交换行中的值 colS lt seq round ncol m
  • RPostgreSQL 无法关闭连接

    我有一个闪亮的应用程序 使用它连接到数据库RPostgreSQL 在应用程序结束时 连接关闭 驱动程序应该被卸载 但我收到错误 警告我连接未关闭 代码看起来像这样 in the app R file but not in the serve
  • 矩阵中两个字符串的最大 nchar

    我想找到更好的方法来找到我正在相互比较的两个字符串的更大的 nchar 假设我有字符串句子匹配data frame 和我需要创建一个 max nchar string1 nchar string2 矩阵 但没有 for 循环 这是非常慢的方
  • 在 R 中索引数据帧

    再会 我不明白这里的主题 就像它有效但我不明白为什么 我有这个数据库 planets df is pre loaded in your workspace Use order to create positions positions lt
  • R CMD 检查警告:在文档对象中使用的函数/方法...但不在代码中

    我正在写一个包 但一个持久的R CMD check警告阻止我完成包裹并将其发布到 CRAN 我用roxygen2对于内联文档 尽管这可能不是错误的根本原因 如果您知道如何删除此警告 我很可能可以找到一种方法来使用roxygen2 如何删除警
  • R testthat 单元测试数据和辅助函数约定

    我正在编写一个 R 包 并使用 testthat 进行单元测试 我的许多单元测试都是为了测试适用于我的包特定对象的功能 对于这些测试 我创建了一个辅助函数来设置模拟对象 我还有一些其他辅助函数来减少单元测试中的代码量 目前这些辅助函数在我的
  • R 中 x 轴曲线的阴影面积

    所以我有一个位于 x 轴下方和上方的图表 并且想要对线和 0 之间的区域进行着色 在这里 我尝试使用多边形函数 但它只给出曲线下的面积 plot year difference1 type l polygon year difference
  • 如何在environment.yml中安装CRAN包

    我正在使用 miniconda 来管理数据科学包的安装 这是我现在已经建立的工作流程 所以我希望它也能在这种情况下工作 我也认为它可以工作 因为它应该在这样的情况下有所帮助 比纯 python 需要更多的依赖项 我想安装pythonCDT工
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • 在闪亮的应用程序中使用传单地图作为过滤器

    是否可以使用传单地图来过滤闪亮应用程序中的数据 就像在 Tableau 或 Power BI 中一样 方法是单击地图上的某个状态 然后根据条件过滤另一个图表或表格选择 None
  • rowSums 全部 NA [重复]

    这个问题在这里已经有答案了 df lt data frame a c 1 1 NA 0 1 0 b c 0 1 NA NA 0 1 c c NA 0 NA 0 1 NA d c 1 NA NA 1 1 0 rowSums df 1 NA N
  • ggplot() 使用scale::percent_format() 缩放产生奇怪的结果

    library tidyverse mtcars gt count cyl gt mutate prop n sum n gt ggplot aes x cyl y prop geom point scale y continuous la
  • 为“facet_wrap”中的每列创建边框和标题

    我想在每个方面周围放置带有标签和标题的黑色边框facet wrap 与此类似的东西 样本数据 library tidyverse mtcars gt mutate gear factor gear levels c 4 3 5 gt ggp
  • 无法使用 cairo 安装 R

    我正在从源代码安装 R cd R 3 2 2 configure prefix pwd with cairo yes with readline no with libpng yes with x no 我已经从源代码安装了 cairo v

随机推荐

  • Android - API 级别 21 中的日期 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你好 我对 Android 还很陌生 目前我对本地日期 或我尝试过的任何其他日期格式 有一个大问题 L
  • Bootstrap 3 无法在 Symfony3 中工作

    我刚刚开始学习 Symfony 3 我正在尝试使用 bootstrap 3 为我的表单设置主题 根据文档 http symfony com doc current cookbook form form customization html
  • Python 交互式 Shell 类型应用程序

    我想创建一个交互式 shell 类型的应用程序 例如 gt app py Enter a command to do something eg create name price For to get help enter help wit
  • 如何识别导航堆栈中的先前视图控制器

    我有2个独立的navigationcontrollers 一与RootViewControllerA 和另一个RootViewController B 我有能力推动ViewControllerC 到 A 或 B 的导航堆栈上 问题 当我在V
  • 如何保护swf文件不被反编译?

    我正在使用 Flex 框架从事重要项目 我想对我的算法和代码保密 是否有可能以某种方式保护 swf 文件不被反编译 我不希望有人使用 flash 反编译器提取我的代码 Thanks 这很简单 只需将其保存在您的 PC 上 不要将其放在网络上
  • SQL Server 获取父列表

    我有一个这样的表 id name parent id 1 ab1 3 2 ab2 5 3 ab3 2 4 ab4 null 5 ab5 null 6 ab6 null 我需要使用输入 id 1 进行查询 例如 结果将如下所示 id name
  • 在 Java 1.7.0 下运行的 SQL-Server (MSSQL-JDBC 3.0) 中的日期列检索为过去 2 天

    当使用 SQLServer2008 从 SQLServer2008 检索 DATE 类型的列时 出现奇怪的效果在官方 Oracle JDK 1 7 0 下运行时 主机操作系统是Windows Server 2003 所有日期列均检索为two
  • 使用sklearn宏f1-score作为tensorflow.keras中的指标

    我已经为tensorflow keras定义了自定义指标 以在每个时期之后计算宏f1分数 如下所示 from tensorflow import argmax as tf argmax from sklearn metric import
  • MacOS X 上使用 crypt 进行 Python SHA512 加盐密码

    我正在尝试生成加密的密码字符串 类似于Linux中的 etc shadow 由于某种原因 我得到的输出是不同的 我有什么想法吗 一个比另一个长 不包括盐部分 usr bin python import crypt alg 6 SHA512
  • FMOD功能的实现

    怎么样fmod功能实现了吗 我尝试了以下方法 include
  • Jython - 使用 Spring,用 Python 编程?

    好吧 我在这方面完全是新手 所以 我知道 Spring 作为一个框架确实很好 而且我已经用 Python 编程有一段时间了 所以我想知道是否可以使用 Spring 框架但使用 Python 代码 我听说 Jython 可能是执行此操作的一个
  • 如何使用Gson序列化Optional类?

    我有一个具有以下属性的对象 private final String messageBundle private final List
  • 如何重新加载当前的 Angular 2 组件

    如何在 Angular 2 中再次重新加载相同的组件 下面是我的代码 import Component OnInit ElementRef Renderer from angular core import Router Activated
  • Mongrel::DirHandler 相当于 Passenger

    我正在使用 Mongrel DirHandler 来控制静态文件的响应标头 这在我的开发机器上效果很好 我的生产机器使用 Passenger 因此我的标头未设置 使用 Passenger 时如何控制静态文件的标头 我的环境中的片段 rb i
  • 使用 Pandas 合并具有不同维度的多个数据框[重复]

    这个问题在这里已经有答案了 我有以下数据框 实际上它们超过 3 个 import pandas as pd df1 pd DataFrame head1 foo bix bar val 11 22 32 df2 pd DataFrame h
  • 从 Google 语音识别中删除脏话审查

    我正在尝试使用 Google 的语音到文本 API 在 iOS 应用程序中将语音转换为文本 我只是将一些音频数据发送到 URL 并且它返回了我所说的 大部分 正确的单词 但是 它用 替换了任何脏话 我如何用实际的咒语替换 只是一些附加信息
  • 减少 OpenGL ES 1.1 中纹理的内存使用

    我在 OpenGL ES 中的场景需要几个大分辨率纹理 但它们是灰度的 因为我仅将它们用于蒙版 我需要减少内存使用 我尝试使用 Bitmap Config ALPHA 8 和 RGB 565 加载这些纹理 ALPHA 8 似乎实际上增加了内
  • 为什么源码中的根包叫“com”? [复制]

    这个问题在这里已经有答案了 在大多数源代码中 根包 文件夹被命名为 com 为什么会这样 它只是约定俗成还是代表着什么 The 习俗 http download oracle com javase tutorial java package
  • Swift UIPickerView 禁用组件

    I m having following UI 如果使用开关 是否可以仅禁用最后两个组件 如果是这样 我该怎么做 您无法禁用这些组件 不过您可以尝试这些解决方案 第一个解决方案 var selectedRow3 3 var selected
  • 与 ggplot2 中的变量级别相对应的等高线级别

    我正在尝试用 ggplot2 绘制等高线图 事实证明它比我想象的要困难一些 使用iris数据集我能够生成这个图 ggplot iris aes x Petal Width y Petal Length fill Sepal Width st