2016-08-01 23 views
0

透明度グループ&の色の組み合わせをX軸として作成し、Y軸として切断するヒートマップを作成します。ヒートマップは、明度+色の数とカットとの交差点に基づいて色付けされます。Ggplot Heatmap - カスタマイズされたカウント範囲のカスタマイズされた色

library(ggplot2) 
library(dplyr) 

## rename diamonds df 
# 1. Generate a count for the frequency of cut+clarity 
# 2. Make a heatmap of this using the following bins 
# 3. Red <= 100 Frequency 
      Yellow = between (100 and 500) 
      Green > 500 
# place counts inside the cell: 

df = diamonds %>% 
select(cut, clarity) %>% 
group_by(cut,clarity)%>% 
mutate(count = n()) 

myplot = ggplot(df, aes(x = clarity, y=cut)) + 
geom_bin2d(bins = c(100,500,50000), col='orange') # 
geom_text(aes(label = count),col='red') 

myplot 
+0

使用 'カット()'あなた連続変数を "離散化" して、次のようにこの質問を自分の色を指定するには、カスタムスケールを使用する:HTTPを://stackoverflow.com/questions/26103140/how-can-i-create-a-custom-colour-scale-using-ggplot2-and-geom-tile/26103786#26103786またはこの1つ:http:// stackoverflow。 com/questions/10981324/ggplot2-heatmap-with-ranged-values/10982332#10982332のようになります。 geom_bin2dを気にしないでください。これはxとyの値をビニングするのに本当に役立ちますが、すでに離散値があります。 – MrFlick

答えて

0

このお試しください:

df$col <- cut(df$count,breaks = c(-Inf,100,500,Inf),right = TRUE) 
df$color<-df$col 
levels(df$color) <- c("<=100","100<#<=500",">500") 

ggplot(data = df, aes(x = clarity, y = cut)) + 
    geom_tile(aes(fill = df$color), colour = "white") + 
    scale_fill_brewer("Count",palette = "Set1")+ 
geom_text(aes(label = count),col='yellow',cex=3) 

![enter image description here

関連する問題