geom_ribbon только для одной строки в ggplot2

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть кадр данных, который является результатом rbind между 2 кадрами данных, которые не имеют одинакового количества столбцов, и, следовательно NA , вводятся значения, вот его краткое описание. Я не уверен, стоит ли мне делиться этим здесь, так как это довольно долго.

 gt; dat  overlaps N std se_of_mean margin.error upper_boundary lower_boundary peaks  1: 0 38232 NA NA NA NA NA eprint_peaks  2: 1 1191 NA NA NA NA NA eprint_peaks  3: 2 533 NA NA NA NA NA eprint_peaks  4: 3 360 NA NA NA NA NA eprint_peaks  5: 4 225 NA NA NA NA NA eprint_peaks  ---  102: 69 1 0 0 0 0 0 mean_random_peaks 103: 76 1 0 0 0 0 0 mean_random_peaks 104: 79 1 0 0 0 1 1 mean_random_peaks 105: 81 1 0 0 0 0 0 mean_random_peaks 106: 94 1 0 0 0 0 0 mean_random_peaks  

Таким образом, общими столбцами между этими 2 кадрами данных являются overlaps и N . peaks Столбцы-это моя grouping переменная ggplot2 . Теперь я строю две линии вот так:

 ggplot(data=dat,aes(x=overlaps,y=log(N),color=peaks))     geom_line()  

И получите этот график:

введите описание изображения здесь

Пока все хорошо, все довольно просто. Проблема возникает, когда я хочу построить доверительный интервал для blue строки, называемой mean_random_peaks так:

 ggplot(data=dat,aes(x=overlaps,y=log(N),color=peaks))     geom_line()   geom_ribbon(aes(ymin=lower_boundary,ymax=upper_boundary))  

Обратите внимание, что upper_boundary lower_boundary это NA для всех eprint_peaks , потому что я не в основном хочу построить доверительный интервал для этой линии и исходной таблицы данных, в первую очередь даже не было этих колонн, для mean_random_peaks все хорошо, у меня есть значения для сюжета К upper_boundary lower_boundary и к этому нужно быть использован в качестве оттенков серого «Голубой линии», то есть типичный образ geom_ribbon производит.

Проблема в том, что я получаю это предупреждение при построении графика:

 Warning message: In max(ids, na.rm = TRUE) : no non-missing arguments to max; returning -Inf  

и мой сюжет выглядит ужасно:

Я думаю, что ggplot пытается получить geom_ribbon обе строки, и, как eprint_peaks только NA что-то искажается. введите описание изображения здесь

Комментарии:

1. Что делать, если для eprint_peaks строк upper_boundary значения будут равны lower_boundary значениям, но вместо NA этого они оба будут равны значению по оси y, т. Е. log(N) ? Это означает, что лента доверия для eprint_peaks линии не будет иметь ширины. Можете ли вы изменить значения в соответствующих dat столбцах, чтобы отразить мое предложение, а затем снова попытаться построить график?

2. да, вы правы, это была моя глупая ошибка.