r - 仅用一点抑制来自 geom_line 的消息

标签 r ggplot2

我正在遍历多个数据集以生成每个数据集的线图。我该如何预防 ggplot从我使用时提示 geom_line超过一分?

以以下数据为例:

mydata = data.frame(
  x = c(1, 2),
  y = c(2, 2),
  group = as.factor(c("foo", "foo"))
)

创建折线图看起来和工作得很好,因为线中有两个点:
ggplot(mydata, aes(x = x, y = y)) + 
  geom_point() + 
  geom_line(aes(group = group))

但是,仅绘制第一行会给出以下信息:

geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?


ggplot(mydata[1,], aes(x = x, y = y)) + 
      geom_point() + 
      geom_line(aes(group = group))

我的一些数字只有一点,并且这些消息会导致生成这些数字的更大脚本中的挂断。我知道这些情节仍然有效,所以我担心的是避免该消息。我也想避免使用 suppressWarnings()如果可能,以防出现另一个合法和意外的问题。

最佳答案

根据对 this question 的回答:suppressMessages(ggplot()) 失败,因为您必须将它包装在 ggplot 对象的 print() 调用周围——而不是 ggplot 对象本身。这是因为警告/消息仅在绘制对象时发生。

因此,要在没有警告消息的情况下查看您的绘图,请运行:

p <- ggplot(mydata[1,], aes(x = x, y = y)) + 
  geom_point() + 
  geom_line(aes(group = group))

suppressMessages(print(p))

关于r - 仅用一点抑制来自 geom_line 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37422114/

相关文章:

在 R 中的数据帧上递归运行函数

r - 如何抖动/闪避geom_segments以便它们保持平行?

r - 回合错误(频率): non-numeric argument to math function from VAR model

r - geom_smooth 与 facet_grid 和不同的拟合函数

r - 在边界框的边缘剪裁的 Voronoi 多边形

r - 按字符和日期列对数据框进行排序

r - 为所有嵌套索引嵌套列表中的某些元素

r - 按面分隔 y 轴标签或删除图例但保留空间

r - 使用 "expression"在ggplot2轴文本中制作特殊字符时的文本对齐

r - ggplot2:具有独立 `Y` 轴的不同面宽度