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!

questionAnswers(1)

yourAnswerToTheQuestion