2016-08-15 6 views
0
ここ

はグレゴールは 何色を定義する条件を記述する方法各点があるべき

df = data.frame(x = rnorm(10), y = rnorm(10)) 

を提案@例としてのデータであるが、私は(別の色でゼロ以下)プロットの左部分と右部分をプロットしたいです他の色の数字の

私はggplotでそれをプロットしようとしましたが、私は固執しています、任意の提案ですか?私が欲しいもの

g <- ggplot(data=df, aes(x=df[,1], y=df[,2])) + 
    geom_point() + 
    xlim(c(-2, 2)) + ylim(c(0,8)) + 
    xlab("my x axis") + ylab(" my y axis") + 
    guides(colour = guide_legend(override.aes = list(shape=16))) 
g 

は、この使用してggplot

+0

最初に、 'aes()'の中で引用符で囲まれていない列名を使用してください。 ggplotにはデータ引数がありますので、データフレームの名前を再入力する必要はありません(バグが発生する可能性があります)。あなたの 'aes()'をこれに変更してください: 'aes(x = log2FoldChange、y = -log10(pvalue)、color = log2FoldChange <0)'。 – Gregor

+0

@ Gregorそれは正しいGregorですが、ポイント全体を赤と青に変更するだけです。最初のオプションでこれらの変更を左右に色分けして適用したいのですが、これは明確ですか?または私はあなたを混乱させるのですか? – nik

+0

また、今後、** minimal **の再現可能な例を提供することをお勧めします。要点で160,000行のデータを共有する必要はありません。*「0より小さい点をどのようにして別の色にするのですか」*。そのために 'df = data.frame(x = rnorm(10)、y = rnorm(10))'を使うことができます。あるいは、データ構造が本当に好きな場合は、 'dput(droplet(head(res、10)))'を実行します。 – Gregor

答えて

2

わかりのように、それをプロットすることができることです。これは全くの質問ではありませんが、各点がどのような色であるべきかを定義する条件を書く方法の問題です。あなたのオリジナルのカラースキームを皮切り

- 私は私が正しく、この

res$my_grouping = with(res, ifelse(pvalue < 0.5 | abs(log2FoldChange) > 1, ifelse(pvalue < 0.5 & abs(log2FoldChange) > 1, 'both', 'one'), 'neither')) 

としてそれを解釈したと思う今のは、それが正かnegtiaveであるかどうかに貼り付けてみましょう:次に

res$my_grouping = paste(ifelse(res$log2FoldChange < 0, 'neg', 'pos'), res$my_grouping, sep = ', ') 

プロット:

ggplot(data=res, aes(x = log2FoldChange, y = -log10(pvalue), color = my_grouping)) + 
    geom_point() + 
    xlim(c(-2, 2)) + ylim(c(0,8)) + 
    labs(x = "log2 fold change", y = "-log10 p-value", color = 'key') + 
    guides(colour = guide_legend(override.aes = list(shape=16))) 

この降伏:

enter image description here

scale_color_manualを使用して色の値をカスタマイズできます。

関連する問題