У меня есть набор данных, который выглядит следующим образом:ggplot2 Multiple непрерывной переменной черчения
Distance Mean SD Median VI Vegetation.Index Direction X X.1 X.2 X.3
1 10m 0.525 0.082 0.530 NDVI NDVI Whole Landscape NA NA NA NA
2 25m 0.517 0.085 0.523 NDVI NDVI Whole Landscape NA NA NA NA
3 50m 0.509 0.086 0.514 NDVI NDVI Whole Landscape NA NA NA NA
4 100m 0.494 0.090 0.497 NDVI NDVI Whole Landscape NA NA NA NA
5 10m 0.545 0.076 0.551 NDVIe NDVI East NA NA NA NA
6 25m 0.542 0.078 0.549 NDVIe NDVI East NA NA NA NA
> dput(droplevels(head(data)))
structure(list(Distance = structure(c(2L, 3L, 4L, 1L, 2L, 3L), .Label = c("100m",
"10m", "25m", "50m"), class = "factor"), Mean = c(0.525, 0.517,
0.509, 0.494, 0.545, 0.542), SD = c(0.082, 0.085, 0.086, 0.09,
0.076, 0.078), Median = c(0.53, 0.523, 0.514, 0.497, 0.551, 0.549
), VI = structure(c(1L, 1L, 1L, 1L, 2L, 2L), .Label = c("NDVI",
"NDVIe"), class = "factor"), Vegetation.Index = structure(c(1L,
1L, 1L, 1L, 1L, 1L), .Label = "NDVI", class = "factor"), Direction = structure(c(2L,
2L, 2L, 2L, 1L, 1L), .Label = c("East", "Whole Landscape"), class = "factor"),
X = c(NA, NA, NA, NA, NA, NA), X.1 = c(NA, NA, NA, NA, NA,
NA), X.2 = c(NA, NA, NA, NA, NA, NA), X.3 = c(NA, NA, NA,
NA, NA, NA)), .Names = c("Distance", "Mean", "SD", "Median",
"VI", "Vegetation.Index", "Direction", "X", "X.1", "X.2", "X.3"
), row.names = c(NA, 6L), class = "data.frame")
Я хотел бы создать barplot фасетов сетку с категориальной переменной по оси Х (Distance), непрерывной переменной на ось y (индекс растительности) и две полосы (средние и средние значения индекса вегетации) для каждого барплота. Граница штриховых рисунков называется «Направление» и «Индекс растительности».
Я сделал это с одним типом меры (в среднем), изображенным ниже.
Вот код, у меня сейчас:
p = ggplot(data,aes(x=Distance,y=Mean,fill=Distance)) + geom_bar(stat =
'identity',position='dodge')+ facet_grid(Direction~Vegetation.Index)+
coord_cartesian(ylim=c(0.2,0.95)) + geom_errorbar(data = data,
aes(ymin=Mean-SD,ymax=Mean+SD),width=0.5)
Но я также хочу планку медианы рядом с ним.
Like this, но для всех штриховых площадок в сетке фасет.
Я нашел некоторые темы, людей, которые хотят, чтобы сделать это точно или нечто подобное, и нашел, что они довольно полезны:
Однако мои данные выглядит очень отличается от их (Я думаю) и меняя его каким-либо образом испортил то, что у меня уже есть. Из того, что я понимаю, я должен использовать group = 'Mean + Median'.
Пожалуйста, сделайте [воспроизводимый пример (нажмите для многих подсказок)] (http://stackoverflow.com/q/5963269/903061). Не разделяйте изображения данных. Вместо этого (а) используйте встроенные данные, которые выглядят как ваши данные, (б) обмениваются коротким кодом для имитации выборочных данных или (c) используйте 'dput()', чтобы воспроизводить ваши данные (или, может быть, подмножество ваших данных) , – Gregor
Также, пожалуйста, будьте понятнее о желаемом выходе. «многократные непрерывные переменные вдоль оси х» не имеет большого смысла, особенно для барплота. Ось оси штрихового графика является категоричной, а не непрерывной. Вы имеете в виду, что вы хотите * тип меры * вдоль оси x, например, один бар для медианного, один бар для среднего? – Gregor
С разъяснением, похоже, что ваша первая ссылка вопроса является почти точным дубликатом. Вам нужно будет преобразовать ваши данные ** в длинный формат **, где у вас есть один столбец «* measure *», который принимает значения «или» означает «или» «медианный» и один столбец «* значение *» который принимает числовые значения среднего или медиана. Вы можете использовать 'melt' [как в этом ответе] (http://stackoverflow.com/a/30023982/903061), чтобы сделать это. – Gregor