Estou tentando produzir um conjunto de box plots com linhas conectando pontos de dados pareados, neste exemplo, maçãs e laranjas. Gostaria que as cores dessas linhas dependessem de qual das pontuações é maior, então se maçãs>laranjas, então a cor A, e se laranjas>maçãs, então a cor B. Também gostaria que os preenchimentos dos box plots fossem de cores diferentes, então o gráfico na coluna de maçãs é a cor C, e o gráfico na coluna de laranjas é a cor D.
Meus dados começam no seguinte formato (exemplo simplificado):
Maçãs | Laranjas | Temporada |
---|---|---|
7 | 5 | Primavera |
3 | 8 | Primavera |
4 | 7 | Verão |
6 | 3 | Verão |
4 | 3 | Cair |
2 | 5 | Cair |
Então começo adicionando uma coluna para a cor da linha (A ou B), usando a seguinte linha:
> mydata$line_colour = ifelse(mydata$Apples < mydata$Oranges, 'A', 'B')
E então use o seguinte para produzir um gráfico, que atribui corretamente cores às linhas de conexão com base na nova coluna. Ele também atribui as cores de preenchimento dos gráficos às mesmas definidas no argumento palette. Como posso alterar isso para que as cores dos preenchimentos de caixa sejam cores diferentes?
p = ggpaired(mydata,
cond1 = 'apples' ,
cond2 = 'oranges' ,
facet.by = 'season' ,
fill = 'condition' ,
color = 'grey12' ,
panel.labs = list(season = c('Autumn','Spring','Summer')) ,
point.size = 1.5 ,
line.size = 0.6 ,
line.color = 'line_colour' ,
title = NULL ,
palette = c(fill_alpha('dodgerblue', 0.5),fill_alpha('tomato1', 0.5))
)
p
saída:
Obrigado por qualquer ajuda. Provavelmente há uma solução bem óbvia, mas já faz tempo que estou batendo a cabeça para resolver isso.