2017-09-14 1 views
0

ここで解決されたヒートマップについて質問しました:custom colored heatmap of categorical variables私は受け入れられた答えに示唆されているようにすべての組み合わせについて私のscale_fill_manualを定義しました。x-yのすべての組み合わせのヒートマップタイルを描画します

この質問に基づいて、scale_fill_manualにあるが、そうではないが、データフレームで利用可能なものだけでなく、変数のすべての組み合わせをヒートマップにプロットするように指示する方法を知りたい。最後のプロットに表示されます)。

どうすればいいですか?

現在のプロットコードは:

df <- data.frame(X = LETTERS[1:3], 
       Likelihood = c("Almost Certain","Likely","Possible"), 
       Impact = c("Catastrophic", "Major","Moderate"), 
       stringsAsFactors = FALSE) 
df$color <- paste0(df$Likelihood,"-",df$Impact) 

ggplot(df, aes(Impact, Likelihood)) + geom_tile(aes(fill = color),colour = "white") + geom_text(aes(label=X)) + 
    scale_fill_manual(values = c("Almost Certain-Catastrophic" = "red","Likely-Major" = "yellow","Possible-Moderate" = "blue")) 

scale_fill_manualは、それぞれの色でImpact, Likelihoodのすべての組み合わせが含まれています。

+0

「GGally」パッケージをご覧ください。 – Thierry

+0

ですので、基本的に値がない残りのタイルはすべて同じ色(灰色など)にします。 – timfaber

+0

質問に現在のコードを追加できますか? 1つの解決法は、例えば、「tidyr :: complete」でプロットする前に、「可能性」と「影響」のすべての組み合わせを包含するようにデータセットを拡張することである。 – aosmith

答えて

0

@aosmithと似ていますが、expand.gridを試してみましたが、有限の組み合わせになるようにしましたが、tidyr::complete()でもかなりうまくいきます。色と文字を追加し、設定された色範囲を使用して塗りつぶします。

df <- data.frame(Likelihood = c("Almost Certain","Likely","Possible"), 
       Impact = c("Catastrophic", "Major","Moderate"), 
       stringsAsFactors = FALSE) 
df2 <- df %>% tidyr::complete(Likelihood,Impact) # alt expand.grid(df) 

df2$X <- LETTERS[1:9] # Add letters here 
df2$color <- paste0(df2$Likelihood,"-",df2$Impact) # Add colors 


ggplot(df2, aes(Impact, Likelihood)) + geom_tile(aes(fill = color),colour = "white") + geom_text(aes(label=X)) + 
    scale_fill_manual(values = RColorBrewer::brewer.pal(9,"Pastel1")) 
関連する問題