2017-07-26 7 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")) – JRCX

関連する問題