Ho un frame di dati come questoggplot set scale_color_gradientn manualmente
BP R2 LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598
e voglio tracciare BP contro LOG10, e colorare i punti da R2. R2 sono valori continui da 0-1.
myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point()
Finora, tutto bene. Tuttavia mi piacerebbe visualizzare i colori R2 in intervalli e colori selezionati manualmente, come questo (se avessi valori discreti).
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() +
scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"),
values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale
Questo sembra carino, ma preferirei impostare i colori da solo.
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) +
scale_colour_gradientn(colours = rainbow(10))
Così, come posso selezionare manualmente gli intervalli di valori continui (1-0.8, 0.8-0.6, 0.6-0.4, 0.4-0.2, 0,2-0), e colorarli per i miei gusti (rosso, giallo , verde, chiaro, blu scuro)? Un gradiente uniforme tra i colori sarebbe bello, ma non cruciale.
Grazie mille Didzis, che lo risolve completamente! Hai anche una soluzione senza sfumature, quindi preferisci tutti i valori da 1 a 0,8 = rosso, 0,8-0,6 = giallo e così via? – user2724998
Quindi è necessario dividere i dati in intervalli usando la funzione cut() e utilizzare tali intervalli come valori discreti. –
Ok, grazie ancora! – user2724998