2017-07-26 132 views
1

我想創建一個與ggplot2的情節,但顏色條並不代表實際的數據。情節看起來很好。不均勻的顏色條,R ggplot2 scale_color_gradient

這裏是我的數據

        KEGG_Pathway Count Ratio pval_adjusted 
1      Amino acid metabolism 67 11.67 1.231153e-14 
2 Xenobiotics biodegradation and metabolism 31 11.07 4.492243e-06 
3      Carbohydrate metabolism 54 7.78 2.940591e-05 
4   Metabolism of cofactors and vitamins 34 8.76 2.439616e-04 
5       Energy metabolism 23 9.58 1.488961e-03 
6      Nucleotide metabolism 13 8.39 1.285896e-01 
7    Metabolism of other amino acids 15 7.94 1.255625e-01 
8 Biosynthesis of other secondary metabolites 20 5.17 1.000000e+00 
9  Metabolism of terpenoids and polyketides 13 3.27 1.000000e+00 
10       Lipid metabolism  9 2.77 1.000000e+00 

,代碼:

data$KEGG_Pathway <- factor(data$KEGG_Pathway, levels = rev(data$KEGG_Pathway)) 

myPalette <- colorRampPalette(brewer.pal(9, "BrBG"))(7) 

ggplot(data, aes(Count, KEGG_Pathway)) + geom_point(aes(color=pval_adjusted, size=Ratio)) + 
    scale_colour_gradientn(colours = myPalette, 
         values = rescale(c(1.23e-14,4.49e-06,2.94e-05,2.44e-04, 
              1.49e-03,1.29e-01,1.26e-01,1)), limits = c(1e-14,1)) + 
    scale_size_area(breaks = seq(0,12, by=2)) + theme_bw() 

情節看起來完全像什麼,我想它。但是彩條完全是瘋了(我想表示我的矢量值限制的漸變條,並在我的調色板所有顏色,在here類似):

enter image description here

我與引導各地發揮= 「colorbar」和guide_colorbar(),但它始終如此產生。

回答

1

用對數刻度作顏色表可能是您的問題可接受的解決方案:

data <- structure(list(id = 1:10, KEGG_Pathway = structure(c(1L, 10L, 
3L, 6L, 4L, 9L, 7L, 2L, 8L, 5L), .Label = c("Amino acid metabolism", 
"Biosynthesis of other secondary metabolites", "Carbohydrate metabolism", 
"Energy metabolism", "Lipid metabolism", "Metabolism of cofactors and vitamins", 
"Metabolism of other amino acids", "Metabolism of terpenoids and polyketides", 
"Nucleotide metabolism", "Xenobiotics biodegradation and metabolism" 
), class = "factor"), Count = c(67L, 31L, 54L, 34L, 23L, 13L, 
15L, 20L, 13L, 9L), Ratio = c(11.67, 11.07, 7.78, 8.76, 9.58, 
8.39, 7.94, 5.17, 3.27, 2.77), pval_adjusted = c(1.231153e-14, 
4.492243e-06, 2.940591e-05, 0.0002439616, 0.001488961, 0.1285896, 
0.1255625, 1, 1, 1)), .Names = c("id", "KEGG_Pathway", "Count", 
"Ratio", "pval_adjusted"), class = "data.frame", row.names = c(NA, 
-10L)) 

library(ggplot2) 
library(RColorBrewer) 
data$KEGG_Pathway <- factor(data$KEGG_Pathway, levels = rev(data$KEGG_Pathway)) 

myPalette <- colorRampPalette(c("red","blue","green"))(15) 

ggplot(data, aes(Count, KEGG_Pathway)) + geom_point(aes(color=pval_adjusted, size=Ratio)) + 
    scale_colour_gradientn(colours = myPalette, trans="log", 
         breaks = 10^(-c(0:14)), limits = c(10e-15,1)) + 
    scale_size_area(breaks = seq(0,12, by=2)) + theme_bw() 

enter image description here

+1

謝謝!這工作!對於色盲安全計劃的小細節: myPalette < - colorRampPalette(c(「#a50026」,「#fee090」,「#313695」))(15) – JRCX