Estou tentando criar um ggolot onde as cores das x-axis
marcas de seleção seriam diferentes. Abaixo está meu código, baseado em outra publicação: https://stackoverflow.com/a/24078744/1867328
library(ggplot2)
ggplot(data.frame(name=c("apple", "orange", "plum"),value=c(3,8,2),outlier=c(FALSE,TRUE,FALSE))) +
geom_point(aes(x=value,y=name)) +
theme(axis.text.y = element_text(ifelse(outlier, 'red', 'green')))
Com esse código estou recebendo erro como
Error: object 'outlier' not found
Entendo que esse erro é da linha
element_text(ifelse(outlier, 'red', 'green'))
No entanto, com base no estilo de codificação existente, não quero definir dados externamente. Existe alguma maneira de a função element_text()
acessar os dados definidos internamente ggplot
e usar a coluna outlier
?
Obrigado pela sua dica.
Movendo meu comentário para uma resposta. Não há suporte até onde eu sei, mas você pode usar uma solução alternativa.
Isso só deve ser feito se cada valor y tiver uma marca de seleção no eixo y correspondente! Mesmo assim, não é uma prática recomendada fornecer entradas vetorizadas para
elem_text()
: Entradas vetorizadas paraelement_text()
não são oficialmente suportadas. ℹ Os resultados podem ser inesperados ou podem mudar em versões futuras do ggplot2.(1) - usando um pipe magrittr conforme descrito aqui e aplicando estilos de tema ao gráfico com base nos dados fornecidos
.
dando
ou (2) usando um
local({...})
wrapper e definindo umdata.frame
eplot
dentro