Ich bin sehr neu zu R so bitte bitte mit mir, wenn etwas nicht klar ist in meiner Frage.Mit mehreren scale_colour_gradient Skalen für verschiedene Bereiche der Daten in einem Plot
Ich habe eine data.frame
"Protein" mit 5 Spalten, nämlich;
1. Proteinname, 2. Protein_FC, 3. Protein_pval, 4.mRNA_FC, 5.mRNA_pval und 6.freq.
Ich versuche, ein Vulkan-Diagramm mit x = log2 (Protein_FC), y = -log10 (protein_pval) zu plotten. Dann kartieren Sie die Größe der Punkte auf Freq und Farbe auf mRNA_FC. Das alles funktioniert gut und hier ist der Code, den ich verwendet habe:
ggplot(protein [ which (protein$freq <= 0.05),] , aes(x = log2(protein_FC) ,
y = -log10 (protein_pval) , size = freq , colour = mRNA_FC ,
label = paste(protein_name,",",mRNA_pval), alpha=1/1000)) +
geom_point() + geom_text(hjust = 0 , vjust = 0 , colour = "black" , size = 2.5) +
geom_abline(intercept = 1.3 , slope = 0) +
scale_colour_gradient(limits=c(-3,3))
alles ist in Ordnung, bis hier. Aber wegen der Art des Experiments, Daten ist es ziemlich dicht um mRNA_FC = 0
. Dort funktioniert das Standardfarbschema, das ggplot anwendet, nicht sehr gut, um verschiedene Punkte zu unterscheiden.
Ich habe verschiedene Farbskalen mit low="colour1"
und high="colour2"
ausprobiert. Ich denke jedoch, dass es am besten ist, mehrere Farbskalen über die Bereiche mRNA_FC
zu verwenden, d.h. blau zu weiß für -3<mRNA<-0.2
, rot zu weiß für -0.2<mRNA_FC<0
, grün zu weiß für 0<mRNA_FC<0.2
und schwarz zu weiß für 0.2<mRNA_FC<3
.
Aber ich habe noch keinen Weg gefunden, es zu tun.
Jede Hilfe wäre willkommen. Prost!
Ich verstehe nicht ganz Ihre Frage. Eine Beispielfigur oder ein Datensatz wäre schön, um besser zu verstehen, was mit den Standard-Farbpaletten von ggplot2 nicht stimmt. – smu
Die Standard-Farbskala rundet die Daten um mRNA_FC = 0 ab, aber ich möchte, dass sie auf beiden Seiten von 0 eine völlig andere Farbe zeigt. Ich denke, dass ihre Anzeige sehr nahe bei 0 liegt, sagen wir -0,1, 0 und 0,1 gleiche Farbe. Leider kann ich den Datensatz nicht freigeben, da er bald veröffentlicht werden muss und der Eigentümer der Daten dies noch nicht veröffentlichen möchte. – ktyagi
Was ist dann mit einer diskreten Farbskala mit benutzerdefinierten "Brüchen"? – smu