#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. да, вы правы, это была моя глупая ошибка.