ggplot2 中的等高线

2023-12-03

我想知道如何使用 ggplot2 中的 stat_contour 更改轮廓线的比例。

现在我正在使用这段代码(如下)来制作 PAR 到 30m 的等高线图,但我的图仅显示前 10m 中的等高线,并且仅显示达到最小值 10^-5 的线。但是,我有长达 30 m 的 z 数据,其范围从 4*10^-9 到 1.4*10^-3 。如何让轮廓线反映这一点?

require(ggplot2)
library(directlabels)

Depth<- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30)
Time.hour.of.the.day. <-c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)
PAR<-c(8.42E-04,9.75E-04,9.02E-04,9.47E-04,9.22E-04,9.36E-04,9.91E-04,1.04E-03,8.62E-04,9.95E-04,1.04E-03,1.28E-03,1.37E-03,1.46E-03,1.25E-03,1.09E-03,1.07E-03,9.79E-04,1.01E-03,9.42E-04,9.42E-04,8.43E-04,3.53E-04,4.09E-04,3.79E-04,3.98E-04,3.87E-04,3.93E-04,4.16E-04,4.35E-04,3.62E-04,4.18E-04,4.38E-04,5.37E-04,5.74E-04,6.13E-04,5.24E-04,4.57E-04,4.47E-04,4.11E-04,4.23E-04,3.96E-04,3.95E-04,3.54E-04,1.49E-04,1.73E-04,1.60E-04,1.68E-04,1.63E-04,1.66E-04,1.76E-04,1.84E-04,1.53E-04,1.76E-04,1.85E-04,2.27E-04,2.42E-04,2.59E-04,2.21E-04,1.93E-04,1.89E-04,1.74E-04,1.79E-04,1.67E-04,1.67E-04,1.49E-04,6.29E-05,7.29E-05,6.74E-05,7.08E-05,6.89E-05,6.99E-05,7.40E-05,7.74E-05,6.44E-05,7.44E-05,7.79E-05,9.55E-05,1.02E-04,1.09E-04,9.32E-05,8.14E-05,7.96E-05,7.32E-05,7.52E-05,7.04E-05,7.04E-05,6.30E-05,2.70E-05,3.12E-05,2.89E-05,3.03E-05,2.95E-05,3.00E-05,3.17E-05,3.32E-05,2.76E-05,3.19E-05,3.34E-05,4.10E-05,4.38E-05,4.67E-05,3.99E-05,3.49E-05,3.41E-05,3.14E-05,3.23E-05,3.02E-05,3.02E-05,2.70E-05,1.16E-05,1.35E-05,1.25E-05,1.31E-05,1.27E-05,1.29E-05,1.37E-05,1.43E-05,1.19E-05,1.37E-05,1.44E-05,1.77E-05,1.89E-05,2.02E-05,1.72E-05,1.50E-05,1.47E-05,1.35E-05,1.39E-05,1.30E-05,1.30E-05,1.16E-05,5.12E-06,5.93E-06,5.48E-06,5.76E-06,5.60E-06,5.69E-06,6.02E-06,6.29E-06,5.24E-06,6.05E-06,6.34E-06,7.77E-06,8.31E-06,8.87E-06,7.58E-06,6.62E-06,6.48E-06,5.95E-06,6.12E-06,5.73E-06,5.72E-06,5.12E-06,2.28E-06,2.64E-06,2.44E-06,2.56E-06,2.49E-06,2.53E-06,2.68E-06,2.80E-06,2.33E-06,2.69E-06,2.82E-06,3.46E-06,3.69E-06,3.94E-06,3.37E-06,2.94E-06,2.88E-06,2.65E-06,2.72E-06,2.55E-06,2.55E-06,2.28E-06,1.02E-06,1.18E-06,1.09E-06,1.15E-06,1.12E-06,1.13E-06,1.20E-06,1.25E-06,1.04E-06,1.21E-06,1.26E-06,1.55E-06,1.66E-06,1.77E-06,1.51E-06,1.32E-06,1.29E-06,1.19E-06,1.22E-06,1.14E-06,1.14E-06,1.02E-06,4.60E-07,5.33E-07,4.93E-07,5.18E-07,5.04E-07,5.12E-07,5.42E-07,5.66E-07,4.71E-07,5.44E-07,5.70E-07,6.99E-07,7.47E-07,7.98E-07,6.82E-07,5.95E-07,5.83E-07,5.35E-07,5.51E-07,5.15E-07,5.15E-07,4.61E-07,2.09E-07,2.43E-07,2.24E-07,2.36E-07,2.29E-07,2.33E-07,2.46E-07,2.57E-07,2.14E-07,2.47E-07,2.59E-07,3.18E-07,3.40E-07,3.63E-07,3.10E-07,2.71E-07,2.65E-07,2.43E-07,2.50E-07,2.34E-07,2.34E-07,2.09E-07,9.57E-08,1.11E-07,1.03E-07,1.08E-07,1.05E-07,1.06E-07,1.13E-07,1.18E-07,9.81E-08,1.13E-07,1.19E-07,1.45E-07,1.55E-07,1.66E-07,1.42E-07,1.24E-07,1.21E-07,1.11E-07,1.15E-07,1.07E-07,1.07E-07,9.58E-08,4.39E-08,5.09E-08,4.70E-08,4.94E-08,4.81E-08,4.88E-08,5.17E-08,5.40E-08,4.50E-08,5.19E-08,5.44E-08,6.67E-08,7.13E-08,7.61E-08,6.50E-08,5.68E-08,5.56E-08,5.11E-08,5.25E-08,4.91E-08,4.91E-08,4.39E-08,2.01E-08,2.33E-08,2.15E-08,2.26E-08,2.20E-08,2.23E-08,2.36E-08,2.47E-08,2.06E-08,2.37E-08,2.49E-08,3.05E-08,3.26E-08,3.48E-08,2.98E-08,2.60E-08,2.54E-08,2.34E-08,2.40E-08,2.25E-08,2.25E-08,2.01E-08,9.20E-09,1.07E-08,9.86E-09,1.03E-08,1.01E-08,1.02E-08,1.08E-08,1.13E-08,9.42E-09,1.09E-08,1.14E-08,1.40E-08,1.49E-08,1.59E-08,1.36E-08,1.19E-08,1.16E-08,1.07E-08,1.10E-08,1.03E-08,1.03E-08,9.20E-09,4.20E-09,4.86E-09,4.50E-09,4.72E-09,4.59E-09,4.66E-09,4.94E-09,5.16E-09,4.30E-09,4.96E-09,5.20E-09,6.37E-09,6.81E-09,7.27E-09,6.21E-09,5.43E-09,5.31E-09,4.88E-09,5.02E-09,4.70E-09,4.69E-09,4.20E-09)

up_PAR = data.frame(Depth,Time.hour.of.the.day.,PAR)

par <- ggplot(up_PAR,aes(Time.hour.of.the.day., Depth, z = PAR))
parplot <- par + stat_contour(bins=20,bandwith=4,  aes(colour=..level..)) +
scale_colour_gradient(low="black", high="black") +
scale_y_reverse(lim=c(30,0)) +
theme_bw() + 
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
xlab("Hour of theDay") + ylab("Depth(m)")
direct.label(parplot)

parplot

enter image description here


4*10^-9 和 1.4*10^-3 之间存在巨大差异。与 1.4*10^-3 相比,4*10^-9 左右的值实际上为零。请参见下图:

plot(up_PAR$PAR, up_PAR$Depth, ylim=rev(range(up_PAR$Depth)) ,ylab="Depth", xlab="PAR")

enter image description here

stat_contour通常用于空间数据(空间中是二维的),而您的数据是空间中的一维的。

你必须设置binwidth(而不是带宽)以非常小的间隔查看所有深度范围内的 PAR 信息,但不要这样做。它不仅会产生一个糟糕的情节(上面一半的线条会变得模糊),而且还会使 R 崩溃。

您可以以更有趣的方式显示此信息。例如:

require(ggplot2)

ggplot(up_PAR, aes(Time.hour.of.the.day., PAR, group=Depth,colour=Depth)) + 
  geom_line(size=1) + 
  scale_colour_gradient("Depth (m)", low="darkblue", high="brown", guide=guide_colourbar(reverse=T)) +
  xlab("Time of the day (hour)") +
  theme_bw() +
  theme(axis.title = element_text(size=20),
        axis.title.x = element_text(vjust=-0.3),
        axis.title.y = element_text(vjust=0.4),
        axis.text = element_text(size=16),
        legend.title = element_text(size=15),
        legend.text = element_text(size=13))

enter image description here

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

ggplot2 中的等高线 的相关文章

  • 当 plt.plot() 调用在其他单元格中完成时, plt.show() 为空

    Context 我必须为物理作业编写一个 Jupyter 笔记本 并且必须绘制一些图表来显示某些数量的演变等 我必须通过每次在代码和 Markdown 单元之间交替来解释我编写的几乎每一行代码 包括plot 电话 这就是我的问题的来源 简而
  • R 下与 Julia 的密切联系

    In my R代码 我使用MixedModels Julia包裹 我整合Julia in R使用JuliaCall包裹 我使用非常大的数据集 1 GB 4x10 6观察 和建模步骤 mixed models 分配了大量 RAM 80 GB
  • rle 命令帮助

    我在使用 rle 命令时遇到了一些麻烦 该命令旨在找到参与者连续达到 8 个连续参与者的点 例如 如果 x lt c 0 1 0 1 1 1 1 1 1 1 1 1 我想返回值 11 感谢 DWin 我一直在使用这段代码 which rle
  • 使用 R 中“rpart”包中的生存树来预测新的观察结果

    我正在尝试使用 R 中的 rpart 包来构建生存树 并且我希望使用这棵树来对其他观察结果进行预测 我知道有很多涉及 rpart 和预测的问题 但是 我还没有找到任何解决 我认为 特定于将 rpart 与 Surv 对象一起使用的问题的方法
  • 将日期刻度添加到 R 中的 ggplot

    我试图在此图中的 x 轴上添加刻度以显示一年中的所有月份 我的代码如下 library ggplot2 library scales p lt ggplot df test aes time reading p geom point alp
  • 在 R 中按邮政编码绘制美国地图上的点,并插入阿拉斯加和夏威夷

    我正在尝试以密度点格式在美国地图上绘制点 其中每个邮政编码的点的大小根据该邮政编码中从事某种职业的人数而定 我已经非常接近我需要的东西 但正在努力获取阿拉斯加和夏威夷的坐标 它们需要在插图上 这里的第一组代码是我所拥有的 loc full2
  • R 版本 4.0.0 上的 ROracle

    当尝试使用 ROracle 时 我收到以下错误消息 gt library ROracle Error package or namespace load failed for ROracle package ROracle was inst
  • 将一个 Rmarkdown 文档中的代码块插入到另一个 Rmarkdown 文档中

    我一直在举办一些小型 R 教程 研讨会 我将 挑战脚本 保存在 Rmarkdown 文档中 它们包含自由文本和 R 代码块 一些代码块是预先填充的 例如 为了设置数据集以供以后使用 而一些代码块则供与会者在研讨会期间填写代码 对于每个挑战脚
  • 基于 dplyr 中的向量创建新列

    With dplyr使用以下命令可以轻松创建新列mutate df lt data frame v1 1 3 v2 c a b c gt mutate df newcol NA v1 v2 newcol 1 1 a NA 2 2 b NA
  • 包含多行 LaTeX 方程的 R 帮助页面

    我正在编写 R 包文档roxygen2 我想将以下多行方程插入到帮助页面中 但我的 LaTeX 代码没有被渲染 hello2 description deqn F t begin cases alpha t f L t 1 alpha t
  • 在R中重新排序字母数字年龄组

    假设这就是 R 给我的 df1 data frame grp c lt 2 2 5 21 26 27 32 6 10 val rep 0 5 grp val 1 lt 2 0 2 2 5 0 3 21 26 0 4 27 32 0 5 6
  • 在 Rdata 中保存矩阵并更新 Rdata 文件

    我有一个矩阵 mat lt matrix data 1 30 ncol 10 nrow 3 我想将其保存到 Rdata save mat file m Rdata 然后加载回来 m lt load m Rdata 然后看看它的内容 m 1
  • R dbGetQuery 与动态字符串

    From 这个帖子 https stackoverflow com questions 3416973 dynamic string in r and 这个帖子 https stackoverflow com questions 34496
  • 通过 read.big.matrix 读取 R 中的大数据

    我正在使用 r 读取尺寸为 3131875 5 的数据read big matrix 我的数据既有字符列又有数字列 包括日期变量 我应该使用的命令是 as1 lt read big matrix C Documents and Settin
  • 如何使用 roxygen 记录数据集?

    是否可以在 roxygen 进程中将 R 文件包含在我的包的数据目录中 我已将几个 R 文件放入数据目录中 当它们使用 data 获取数据时 它们会读取原始数据文件并执行一些转换 Roxygen 可以在 R 文件中的任何位置使用 换句话说
  • dplyr:评估错误:对象“。”在 gamlss 中找不到,但在 lm、gam、glm 方法中都很好

    语境 tidyverse and dplyr环境 工作流程 我希望了解如何解决以下问题 这是我在尝试处理回归结果集合时遇到的 这个最小的可重复性显示了问题 mtcars gt gamlss mpg hp wt disp data gt mo
  • R:动态创建变量名

    我正在寻找使用 for 循环创建多个数据帧 然后将它们缝合在一起merge 我可以使用创建我的数据框assign paste blah 但是 在同一个 for 循环中 我需要删除每个数据帧的第一列 这是我的代码的相关部分 for j in
  • Predict.randomForest 中的错误

    我希望有人能够帮助我解决 R 中 randomForest 包的预测函数遇到的问题 当我尝试预测测试数据时 我不断收到相同的错误 到目前为止 这是我的代码 extractFeatures lt function RCdata feature
  • 如何在R中生成多个矩阵

    我在 R 中得到了两个值列表 daily max car List 1 21 21 22 22 22 22 21 daily 0 8 List 2 16 17 17 17 18 17 17 尝试在 R Studio 中编写一个 For 循环
  • ggplot2条形图:按数据顺序填充

    给出这样的数据框 sam lt data table title c rep Cat 8 rep Dog 4 fcat c A B C B B C C B C B B C fnum c seq 8 1 seq 4 1 labeltext c

随机推荐

  • Mac上的clang不支持统一初始化吗?

    Mac上的clang不支持统一初始化吗 我尝试编译以下代码 但编译器引发错误 include
  • 比较两个 pandas 数据帧的差异

    我有一个更新 5 10 列数据的脚本 但有时起始 csv 将与结束 csv 相同 因此我不想编写相同的 csv 文件 而是希望它什么都不做 如何比较两个数据帧以检查它们是否相同 csvdata pandas read csv csvfile
  • MS Access 多选组合框 选择全部/无

    我的表单上有一个链接到 SharePoint 字段的组合框 该组合框可以正确填充 但是我在尝试添加 VBA 代码来选择所有选项或取消选择所有选项时遇到困难 通过标准组合框 您可以使用 cmbBox1 value 这将重置该字段 可以使用启用
  • 有效的 stdin 读取 C 编程

    任何人都可以帮助我优化读取标准输入的代码 这就是我现在所拥有的 unsigned char msg size t msgBytes 0 size t inputMsgBuffLen 1024 if msg unsigned char mal
  • “模块似乎丢失”-py2exe

    我正在使用 py2exe 0 6 9 win32 py2 7 exe 并将 py 文件转换为 exe 问题是 当我尝试打开 exe 文件时 它无法打开 因为它显示 无法导入框架 之类的内容 Frame 是另一个 py 文件 我在其中编写了一
  • 特定时间跨度内的推文 (TwitteR)

    有没有办法使用 twitteR 获取特定时间跨度 例如 12 月到 1 月 的推文 而不是简单地获取过去的 N 条推文 如 tweets 或者使用 TwitteR 库不可能吗 这意味着您必须使用 Excel 之类的工具按日期对大量推文进行子
  • Android:权限拒绝:以撤销权限 android.permission.CAMERA 启动 Intent

    我正在尝试开始一个ACTION IMAGE CAPTURE活动以便在我的应用程序中拍照 但我在主题中收到错误 堆栈跟踪 FATAL EXCEPTION main Process il ac shenkar david todolistex2
  • 线程可以作为另一个用户执行吗? (.NET 2.0/3.5)

    我有一个 C 应用程序 它对包含计算的源文件执行一些运行时编译到动态程序集中 显然 这带来了严重的安全问题 根据以下 公式 将生成以下代码 并创建动态程序集 Formula Int32 index value LastIndexOf Str
  • 当视图加载 angularjs、ngInit 时初始化范围值的正确方法?

    在过去的几周里 我一直在学习 AngularJs 并研究了许多大型应用程序 以了解现实世界中的事物是如何工作的 在大多数情况下 我注意到加载视图时 ng init init 即在相关控制器中调用函数 init 用于设置初始值 但是 很大但是
  • 通过前几个字符识别数据框列

    我有一个数据框 其中列名称以某些字符开头 gt colnames df 1 p crossfencing p livestockdrinking v livestocktrail 5 v landclearing v grazelivest
  • Rails 充当多个标签过滤器上的 taggle

    我有一个模型 任务 可以在 gem 上标记为可标记的行为 路线 获取 mainpage tag 到 mainpage index as tag 现在 当您单击某个标签时 它会将您带到带有该标签的所有任务 我想做的是 一旦您进入标签页面 单击
  • 安装 GitHub 插件后 Jenkins 崩溃

    我有一个关于更新 GitHub 插件的问题 每次我更新插件 例如 GitHub 并重新启动 jenkins 时 Jenkins 就会开始崩溃 当我尝试在浏览器中通过 URL 访问 jenkins 时 会出现错误页面 并显示一些异常 clas
  • 在 AngularJS 控制器和指令中使用“this”而不是“scope”

    我最近读了约翰爸爸的固执己见AngularJS 风格指南并注意到他关于控制器的约定 recommended function Customer var vm this vm name vm sendMessage function 当它在控
  • JVM GC 问题

    在过去的几周里 我一直在为我的 Glassfish 服务器测试不同的 JVM 设置 堆的主要设置 除其他外 是 Xms512m Xmx512m XX NewRatio 2 我尝试了不同的 GC 设置 但在启动服务器几天后仍然遇到长时间暂停的
  • 确定平均角度

    我正在开发一个涉及获取游戏中摄像机角度的应用程序 该角度可以是 0 359 之间的任意值 0 是北 90 是东 180 是南 等等 我正在使用一个 API 它在 Camera 类中有一个 getAngle 方法 我如何找到不同摄像机角度之间
  • HTML 中的大括号

    我偶然发现了这段代码 a href class text1 a 什么是 text2 做 稍后 该 HTML 被替换为 a href class text1 a 有什么办法可以找回text2jQuery 的价值 在某些情况下 代码是输入的 因
  • 如何创建Windows服务的多个实例?

    我想运行服务器上安装的 Windows 服务的多个实例 而无需再次安装 这怎么可能 服务 安装 实际上只是在名称 可执行文件和其他一些元数据位之间添加映射 服务一旦安装 要么运行 一次 要么不运行 运行多个实例作为服务 它们必须使用不同的名
  • 新的.NET“project.json”项目,将预构建的本机.dll复制到输出目录

    我正在寻找将我的项目转换为使用project json格式 但仍使用 NET CLR 直到第 3 方依赖项添加对 CoreCLR 的支持 话虽如此 content 目录中的一些文件的 NuGet 依赖项需要输出到正在运行的应用程序的 bin
  • 获取最小化窗口的大小

    我从来不知道这一点 但显然 默认情况下 系统会减少 最小化窗口到其大小 任务栏按钮并移动最小化 窗口到任务栏 一个恢复的 window 是一个已经存在的窗口 返回到之前的大小并且 位置 即它的大小 在最小化或最大化之前 在应用程序中 我们希
  • ggplot2 中的等高线

    我想知道如何使用 ggplot2 中的 stat contour 更改轮廓线的比例 现在我正在使用这段代码 如下 来制作 PAR 到 30m 的等高线图 但我的图仅显示前 10m 中的等高线 并且仅显示达到最小值 10 5 的线 但是 我有