ggplot2: comportamento de cor de preenchimento de geom_ribbon

Estou tentando colorir fitas no ggplot2. Ao usar geom_ribbon, sou capaz de especificar ymin e ymax e uma cor de preenchimento. O que ele faz agora é colorir tudo o que está entre ymin e ymax, sem considerar o limite superior ou o limite inferior.

Exemplo (modificado da Internet):

library("ggplot2")
# Generate data (level2 == level1)
huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron), level2 = as.vector(LakeHuron))

# Change Level2
huron[1:50,2] <- huron[1:50,2]+100
huron[50:90,2] <- huron[50:90,2]-100

h <- ggplot(huron, aes(year))

h +
  geom_ribbon(aes(ymin = level, ymax = level2), fill = "grey80") +
  geom_line(aes(y = level)) + geom_line(aes(y=level2))

resultará neste gráfico:

Gostaria de preencher a área onde (ymin> ymax), com uma cor diferente da onde (ymin <ymax). Nos meus dados reais, tenho valores de exportação e importação. Lá, eu gostaria de colorir a área onde a exportação é maior que a importação verde, onde a importação é maior que a exportação. Quero que a fita seja vermelha.

Alternativa: eu gostaria que o geom_ribbon preenchesse apenas a área, onde ymax> ymin.

Alguém sabe como isso é feito?

Obrigado pela ajuda.

questionAnswers(3)

yourAnswerToTheQuestion