Я делаю составные гистограммы с помощью ggplot2 в R с определенным порядком столбцов по оси y.
# create reproducible data
library(ggplot2)
d <- read.csv(text='Day,Location,Length,Amount
1,4,3,1.1
1,3,1,2
1,2,3,4
1,1,3,5
2,0,0,0
3,3,3,1.8
3,2,1,3.54
3,1,3,1.1',header=T)
ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount, order = Location), stat = "identity")
ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount, order = rev(Location)), stat = "identity")
Первый график ggplot показывает данные в порядке Location, с Location = 1, ближайшим к оси x, и данные для каждого увеличивающегося значения Location складываются после следующего.
Второй график ggplot показывает данные в другом порядке, но он не складывает данные с наивысшим значением Location, ближайшим к оси x, с данными для следующего самого высокого местоположения, сложенными за секунду от положения оси x для первый столбец столбца, как я и ожидал, основан на более ранней публикации.
Следующий фрагмент действительно показывает данные желаемым образом, но я думаю, что это артефакт простого и небольшого набора данных примера. Порядок наложения не указан, поэтому я думаю, что ggplot складывается на основе значений для Amount.
ggplot(d, aes(x = Day, y = Length)) + geom_bar(aes(fill = Amount), stat = "identity")
Я хочу заставить ggplot складывать данные в порядке убывания значений местоположения (Location = 4, ближайший к оси x, Location = 3 next, ... и Location = 1, самое вверху столбца столбца), вызвав order =
или другой эквивалентный аргумент. Есть мысли или предложения?
Кажется, это должно быть легко, потому что я имею дело только с числами. Не должно быть так сложно попросить ggplot складывать данные таким образом, чтобы это соответствовало столбцу убывающих (по мере удаления от оси x) чисел, не так ли?
order
. - person BrodieG   schedule 09.06.2015