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))
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.