Что касается вашего вопроса, я вижу, что вы используете функцию log10
для вычисления точек оси Y, обратите внимание, что журнал не определен для отрицательных чисел (и 0). Эти значения дадут NaN
и будут проигнорированы.
Что касается более широкого вопроса, как увидеть, какие данные отображаются на графике, с помощью ggplot
и plotly
вы можете извлечь данные, но с помощью 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
Столбцы x
и y
представляют оси 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
Создано 02 июля 2021 г. пакетом reprex (v0.3.0)
Пожалуйста, предоставьте свой код, чтобы мы могли вам помочь
Как правило, когда
ggplot2
илиplotly
не могут найти способ построения графика наблюдений, они игнорируют их. Это характерно для значенийNA
,NaN
. Кроме того, если вы используете какую-либо функцию вычисления (например, функциюstat
), они также могут игнорировать значения, если они не могут вычислить значения.@monte Это также может быть значение за пределами диапазона панели, поэтому я не согласен, когда вы говорите игнорировать их.
@MonJeanJean, я согласен, но я имел в виду, что ggplot игнорирует их, а не вы должны их игнорировать
@monte Хо ок, извините за неправильное понимание
@MonJeanJean Я думал об этом, но подозреваю, что проблема больше в моих данных, чем в фактическом коде, и мои данные очень велики, и мне все равно не разрешат ими делиться
@monte Хорошие идеи, спасибо. Но я проверил, что все мои записи являются числовыми с помощью функции
is.numeric()
, и специально искал записи NA и NaN - видимо, их нет.