绘制火山图时在 R 中发出警告:忽略观察

Plotly warning in R when plotting volcano plot: ignoring observations

我在 R 中使用 plotly 生成火山图。当我调用 plot 时,它看起来很好,但我也得到一个错误:

Warning message: Ignoring 5 observations

我如何找出这 5 个观察结果是什么?或者为什么他们被忽视了? 我需要检查这5个数据点是否有问题。我已经目视检查了我的数据,没有发现任何问题,但它是一个巨大的数据集,所以我可能会遗漏一些东西。

有人可以提供一些调试步骤的建议吗?

编辑:我不确定它是否有帮助,因为我怀疑问题出在我的数据上,而不是代码上,但这是我使用的代码,带有简化的数据。

library(plotly)
name <- c("Name1", "Name2", "Name3")
log2FoldChange <- c(-2.7419374, 2.9655255, -1.7455225)
padj <- c(2.25e-27, 3.01e-24, 2.56e-25)
df <- data.frame(name, log2FoldChange, padj)
my_plot <- plot_ly(data = df,
                       x = df$log2FoldChange, 
                       y = -log10(df$padj))

关于你的问题,我看到你正在使用 log10 函数来计算 y 轴点,请注意 log 没有为负数(和 0)定义。这些值将产生 NaN 并将被忽略。

关于更广泛的问题,如何查看正在绘制的数据,使用 ggplotplotly 您可以提取数据,但使用 plotly 我找到了它很难找到未绘制的数据。

library(palmerpenguins)
#> Warning: package 'palmerpenguins' was built under R version 4.0.5
invisible(library(tidyverse))
#> Warning: package 'dplyr' was built under R version 4.0.3
invisible(library(plotly))

randomRows = sample(1:nrow(penguins), 10) #to replace any 10 rows with NA

penguins[randomRows, "body_mass_g"] = NA

penguins %>% 
  ggplot(aes(bill_length_mm, body_mass_g)) +
  geom_point() -> plot_ggplot

plot_ggplot
#> Warning: Removed 11 rows containing missing values (geom_point).

如您所见,它会发出行已被忽略的警告。

获取绘图数据:

head(ggplot_build(plot_ggplot)$data[[1]])
#>      x    y PANEL group shape colour size fill alpha stroke
#> 1 39.1 3750     1    -1    19  black  1.5   NA    NA    0.5
#> 2 39.5 3800     1    -1    19  black  1.5   NA    NA    0.5
#> 3 40.3 3250     1    -1    19  black  1.5   NA    NA    0.5
#> 4   NA   NA     1    -1    19  black  1.5   NA    NA    0.5
#> 5 36.7 3450     1    -1    19  black  1.5   NA    NA    0.5
#> 6 39.3 3650     1    -1    19  black  1.5   NA    NA    0.5

xy 列代表您的 x 轴和 y 轴。

plotly 的情况下,有一种类似的方法来提取数据,但它只显示那些绘制的点。我想不出一种方法来提取被忽略的值。

pp = plot_ly(penguins, x=~bill_depth_mm, y=~body_mass_g, type='scatter')
plotly_build(pp) -> plotly_data
#> No scatter mode specifed:
#>   Setting the mode to markers
#>   Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
#> Warning: Ignoring 11 observations
#> Warning: `arrange_()` was deprecated in dplyr 0.7.0.
#> Please use `arrange()` instead.
#> See vignette('programming') for more help

names(plotly_data$x$data[[1]])
#>  [1] "x"       "y"       "type"    "mode"    "marker"  "error_y" "error_x"
#>  [8] "line"    "xaxis"   "yaxis"   "frame"

#this gives your x-axis data
plotly_data$x$data[[1]]$x[1:5]
#> [1] 18.7 17.4 18.0 19.3 20.6

#this gives your y-axis data
plotly_data$x$data[[1]]$y[1:5]
#> [1] 3750 3800 3250 3450 3650

reprex package (v0.3.0)

于 2021-07-02 创建