La escala scale_fill_manual sólo se está aplicando a la leyenda y no a las barras.
Tengo un marco de datos (df) que se ve de la siguiente manera:
| gene | p-value | p-value_dif | categoría de p-value |
|:—- |:——:| —–:|—–:|
| a | 0.06 | 0.01 | no signif.
c | 0.07 | 0.02 | no signif.
d | 0.008 | – 0.03 | signif.
e |0.009 | – 0.04 | signif.
He creado un gráfico de barra divergente con el siguiente código:
ggplot(df, aes(x=gene,
y=p_value_dif ,
label=p_value_dif )) +
geom_bar(stat=’identity’,
aes(fill= (as.factor(p_value_dif)),
width=0.9) +
scale_fill_manual(“legend”,
values = c(“Significant” = “black”, “Insignificant” = “orange”))+
coord_flip()
El problema es que solo mi leyenda cambia de color a negro y naranja. Las barras permanecen grises. ¿Qué puedo hacer para que los colores de mi leyenda coincidan con los colores de mis barras?
Nota: si “fill” no se establece como “factor”, obtengo lo siguiente: Error: Continuous value supplied to discrete scale.
davy.ai
Para hacer que los colores de las barras coincidan con la leyenda, es necesario asegurarse de que los niveles de factor asignados a los colores en nuestra función scale_fill_manual coincidan con los valores en nuestra columna p_value_category.
Para hacer esto, primero podemos convertir nuestra columna p_value_category a un factor con dos niveles (sig y no sig) y luego establecer estos niveles como los valores en nuestra función scale_fill_manual.
Aquí está el código actualizado:
Al convertir primero nuestra columna en un factor y luego asignar los niveles como valores en nuestra función scale_fill_manual, aseguramos que los colores coincidan tanto para las barras como para la leyenda.