Sto provando a tracciare punti dati con tre colori diversi per tre intervalli di valori. Per esempio:ggplot geom_point() con colori basati su specifici valori discreti
library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(colour = qsec))
È possibile che questo produce:
Ora, vorrei modificare questo modo i valori che qseq < 17 sono neri, valori compresi tra 17 e 19 sono di colore giallo e di valori di cui sopra 19 sono rossi. Ho provato vari approcci, ma nessuno di loro sembra funzionare:
Tratto da here
ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(fill = qsec)) + scale_fill_gradientn(colours=c("black","yellow","red"), breaks=c(0,17,19), labels=format(c("0","17","19")))
Questo produce:
Così, il colorbar sembra corretto ma i colori non sono effettivamente applicati.
Le soluzioni fornite in ggplot2 heatmap with colors for ranged values sembrano promettenti ma non riesco a farle funzionare con
geom_point()
.Lo stesso vale per vari post simili, come quelli elencati nella barra laterale.
mi rendo conto probabilmente avrò bisogno di utilizzare una sorta di scala discreta invece di scale_fill_gradientn
ma i miei tentativi di utilizzare scale_color_manual()
fallire:
ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(color = factor(qsec))) +
scale_color_manual(values=c("black", "yellow","red")
Error: Insufficient values in manual scale. 30 needed but only 4 provided.
Sono indovinando io in qualche modo necessario utilizzare cut()
o factor()
ma non riesco a capire come. Eventuali suggerimenti?
Hi @roland Sarebbe questo scale_color_manual impostazione corsa con geom_line? – pacomet
Una scala di colori viene applicata a tutte le aree geografiche per le quali viene mappato un colore. – Roland
Ho provato ad adattare il codice ai miei dati ma non ci sono riuscito. Quello di cui ho bisogno è colorare una singola geom_line() a seconda dei valori di y. Questa immagine (https://www.dropbox.com/s/du6fjvr71vybhuu/Rplot.png?dl=0) mostra ciò che sto cercando. Forse dovrei aprire una domanda. – pacomet