гистограмма ggplot с фазово-зависимым порядком категорий

Я видел много вопросов (часто связанных сЗаказать столбцы в ggplot2 гистограмма) о том, как (пере) упорядочить категории в гистограмме.

То, что мне нужно, это просто немного другое, но я не нашел хорошего способа сделать это: у меня есть многогранный гистограмма, и я хочу упорядочить ось x для каждого фасета независимо, в соответствии с другой переменной ( в моем случае эта переменная - это просто значение y, т. е. я просто хочу, чтобы столбцы увеличивались по длине в каждом аспекте).

Простой пример, например, следующийЗаказать столбцы в ggplot2 гистограмма:

df <- data.frame(name=c('foo','bar','foo','bar'),period=c('old','old','recent','recent'),val=c(1.23,2.17,4.15,3.65))
p = ggplot(data = df, aes(x = reorder(name, val), y = val))
p = p + geom_bar(stat='identity')
p = p + facet_grid(~period)
p

Мы получаем следующее:

В то время как то, что я хочу, это:

Ответы на вопрос(4)

Ваш ответ на вопрос