Używanie wielu skal scale_colour_gradient dla różnych zakresów danych na jednym wykresie
Jestem bardzo nowy w R, więc proszę, miejcie ze mną kontakt, jeśli coś nie jest jasne w moim pytaniu.
mamdata.frame
„białko” z 5 kolumnami, a mianowicie;
1.protein_name, 2.protein_FC, 3.protein_pval, 4.mRNA_FC, 5.mRNA_pval i 6.freq.
Próbuję narysować wykres wulkanu z x = log2 (protein_FC), y = -log10 (protein_pval). Następnie mapuj rozmiar kropek na freq i kolor na mRNA_FC. To wszystko działa dobrze i oto kod, którego użyłem:
<code>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)) </code>
wszystko jest w porządku do teraz. Jednak ze względu na charakter eksperymentu dane są dość gęstemRNA_FC = 0
. Tam domyślny schemat kolorów stosowany przez ggplot nie działa zbyt dobrze w odróżnianiu różnych punktów.
Próbowałem różnych skal kolorów za pomocąlow="colour1"
ihigh="colour2"
. Myślę jednak, że najlepiej będzie używać wielu skal kolorów w zakresachmRNA_FC
, to znaczy coś takiego. niebieski do białego dla-3<mRNA<-0.2
, czerwony do białego dla-0.2<mRNA_FC<0
, zielony do białego0<mRNA_FC<0.2
i czarny do białego0.2<mRNA_FC<3
.
Ale nie znalazłem jeszcze sposobu na zrobienie tego.
Każda pomoc byłaby doceniana. Twoje zdrowie!