У меня есть два графика площади (назовите их «синий» и «зеленый»), где green
в основном находится под графиком blue
, но в очень немногих точках он выше, чем график blue
.Я хочу использовать прозрачность, скажем, alpha = 0.2
для обоих, а также иметь возможность указать цвета для каждого.Моя проблема сейчас в том, что, поскольку график green
в основном находится под графиком blue
, его область в основном имеет смешанный цвет blue
+ green
= некоторый другой цвет, и только в несколькихместами показывает свой «истинный» зеленый цвет.Однако легенда 1012 *, конечно, показывает график blue
, отображенный на синем, а график green
, отображенный на зеленом.Проблема в том, что когда кто-то смотрит на график, он будет сбит с толку, поскольку график green
в основном выглядит не зеленым (потому что большую часть времени он перекрывается синим).
Вот мой код (супер упрощенная версиямоего настоящего приложения).
df <- data.frame( date = 1:5, blue = 10, green = c(1,5,11,5,1))
df.m <- melt( df, id = 'date', variable_name = 'type' )
df.m$type <- ordered( df.m$type, c('green', 'blue'))
ggplot(df.m, aes(date,value)) +
geom_area( aes(fill = type), position = 'identity', alpha = 0.2) +
scale_fill_manual ( values = c('green', 'blue') )
Как видите, «истинно зеленая» область зеленого графика очень мала, поэтому цвет легенды для green
не соответствует большинству green
сюжета.Это, конечно, правильное поведение по дизайну, но мне интересно, есть ли какой-нибудь способ, которым я могу получить цвет легенды для green
и перекрывающийся цвет blue+green
, чтобы соответствовать.Я попытался преобразовать переменную blue
в blue - green
, а затем сделать графики области с накоплением (с position = "stack"
).Это почти работает, но не вполне удовлетворительно, потому что цвет дат, когда новая переменная blue
является отрицательной, выглядит странно.
Существуют ли другие способы получить цвет легенды для green
и цвет области "перекрывающихся сине-зеленых", чтобы соответствовать?Может быть, способ напрямую указать цвет легенды?Любая помощь приветствуется!