- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自ggridges
包的geom_密度_ridges
geom创建了山脊线,如果未指定带宽,它会尝试找到一个合理的值。然后,它使用 base
R message
函数报告该值(请参阅 https://twitter.com/ClausWilke/status/921363157553172480)。
base
R 函数 suppressMessages
函数旨在抑制此类消息。例如,此代码输出一条消息:
message('This is a message');
这段代码没有输出任何内容:
suppressMessages(message('This is a message'));
但是,由于某种原因,当将此几何图形添加到 ggplot 时,消息的抑制似乎被抑制了。以下代码确实仍然会生成一条消息:
require('ggplot2');
require('ggridges');
suppressMessages(ggplot(Orange, aes(x=age,y=Tree)) + geom_density_ridges());
(具体来说,“选择 319 的联合带宽
”。)
这是为什么呢? ggplot 是否会采取一些措施来确保无论用户的规范如何,消息都会通过?或者这实际上是明智的行为,只是我碰巧不知道?
生成 RMarkdown 报告时,可以将 block 选项 message
设置为 message=FALSE
,这会抑制渲染级别的所有消息。由于这是我的用例,我的问题就解决了。
正如 ggridges
包的作者 Claus Wilke 所建议的,您始终可以手动设置 带宽
以避免出现消息 ( https://twitter.com/ClausWilke/status/921361195231215616 )。
但是为什么不suppressMessages
首先抑制消息?
这是我碰巧不知道的预期行为吗?
最佳答案
当您调用ggplot()
时,该命令实际上并不绘制绘图 - 它创建一个 ggplot 对象。只有当该对象被打印时,才会真正绘制出绘图。当您在 R 控制台中键入表达式时,默认行为是调用 print()
结果这就是为什么它看起来像 ggplot()
绘制一个图。
请注意,您遇到的警告不会在创建 ggplot 对象期间发生;它们发生在该对象的打印过程中。所以如果你运行
suppressMessages(ggplot(...))
本质上与
相同print(suppressMessages(ggplot(...)))
在交互模式下运行 R 时。但由于 ggplot()
没有生成消息,没有任何内容被抑制,并且在打印结果对象时这些消息仍然出现。要抑制打印期间创建的消息,您需要包装实际的 print()
声明 suppressMessages()
.
suppressMessages(print(ggplot(...)))
关于r - 为什么 ggplot 不允许抑制其 geoms 生成的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46850633/
在下面的查询中,为什么我们使用As foo (geom) 而不是As geom? foo() 做什么? SQL 查询 SELECT ST_SRID(geom) AS srid, ST_SRID(ST_
我有一组点,我想在 Java 中将其变成闭合的多边形。我目前正在尝试使用 java.awt.geom.Point2D 和 java.awt.geom.Area,但不知道如何将一组点变成一个区域。 我想
我正在编写一个偏移函数来测试移动物体是否接触空间中的其他可移动和固定物体。 为了测试这一点,我需要查看它们的边界矩形是否相交。 我想测试两个可移动物体是否像这样接触: table 车 - id:整数(
我尝试使用 ggplotly 函数将 ggplot geom-tile 图表转换为 plotly。然而,我意识到结果是不同的。请引用以下链接查看差异。除此之外,ggplotly 图表还缺少颜色条。请帮
在 ggplot2 – issue with overlay of lines and errorbars ,我提出了一个使用 lapply(.) 的答案以特定顺序生成几何图形组,以便每个级别的点/线
我试图在图中绘制两个“geom_vline()”。 下面的代码适用于一条垂直线: x=1:7 y=1:7 df1 = data.frame(x=x,y=y) vertical.lines <- c(2
我一直在阅读 vignette on extending ggplot2 ,但我对如何制作可以向绘图添加多个几何图形的单个几何图形有些困惑。 ggplot2 geoms 中已经存在多个几何图形,例如,
我在普林斯顿各个地点的交通流量数据框。 # dput(count) structure(list(intersection = structure(c(11L, 9L, 10L, 12L, 6L, 3
我在 postgres 数据库中有 geom。当我使用这个查询时 SELECT ST_AsGeoJSON(st_simplify(geom,0.01))::json As geometry FR
本文整理了Java中org.geolatte.geom.codec.WktDecoder类的一些代码示例,展示了WktDecoder类的具体用法。这些代码示例主要来源于Github/Stackover
本文整理了Java中org.geolatte.geom.codec.WkbEncoder类的一些代码示例,展示了WkbEncoder类的具体用法。这些代码示例主要来源于Github/Stackover
sf包似乎是一种比 sp 更易于用户使用的处理空间数据的方法。 .例如,如果我有一组纬度/经度坐标,我可以使用 ggplot2 的开发版本轻松绘图。 : library(sf) devtools::i
我想在使用stat_boxplot(geom = "errorbar")时更改晶须的线宽: set.seed(42) df <- data.frame(cond = factor( rep(c("A"
我有如下地理数据(但数据量大得多): library(tidyverse) library(gganimate) n % sort data % arrange(longitude) %>% muta
Hi I want to initialize an array of Point2D (Point2D.Double []) Somehow I fail, I get the following
根据 D3 文档,可以为 hull 方法分配自定义访问器来获取 x 和 y 坐标。 Hull documentation 我想使用这些自定义访问器,但我无法弄清楚语法。这就是我所做的,这基本上是一个不
我想使用 Java 的 Area 类 (java.awt.geom.Area) 对各种多边形进行减法和求交操作。 在许多这些情况下,减法操作可能会将源区域分成两部分。在这些情况下,我需要返回两个 Ar
我正在尝试在 R 中制作一个多面绘图线图,无论有多少组可用于分面,它都会生成一个图。当运行下面的代码时,我得到了一个理想的绘图,如下图所示 # R 3.6.0 # most of these pack
与其他 ggplot geom 相比,geom_vline 似乎在色彩美学方面“表现不佳”。我想弄清楚我是否对 geom_vline 有误解,或者这是否是对 geom_vline 设计的疏忽。 # F
我首先给你我的示例代码: x <- runif(1000,0, 5) y <- c(runif(500, 0, 2), runif(500, 3,5)) A <- data.frame("X"=x,"
我是一名优秀的程序员,十分优秀!