[英]Convert a geom_tile in dotplot in ggplot2
我正在使用geom_tile
在ggplot2中做幾個熱圖。 它們的效果很好,但是如果我要代替點(小矩形)而不是我想要點。 我的輸入是一個二進制矩陣(使用melt
函數在表中轉換)。
我的x和y是離散因子。 我如何產生圓或圓點而不是瓷磚.....任何想法?
謝謝!
例:
dat=data.frame(sample = c("a","a","a","b","b","b","c","c","c"), cond=c("x","y","z","x","y","z","x","y","z"),value=c("1","4","6","2","3","7","4","6","7"),score=c(0,1,1,0,0,0,1,1,1))
如果我使用以下圖表:
ggplot(dat, aes(x = sample, y = cond, color = value)) +
geom_point()
我弄錯了情節。 相反,我希望有一個分數為0或1的點,並按值系數對其進行着色。
我認為您的意思是將分數映射到您的色彩美感而不是價值 (如共享代碼中所寫)。
只需將顏色轉換為您最初的美學要求中的一個因素:
ggplot(dat, aes(x = sample, y = cond, color = as.factor(score))) +
geom_point()
編輯:用戶表示他想過濾分數不等於1的觀察值 ,然后按值對點着色。 您可以通過添加以下管道操作來做到這一點:
我認為您的意思是將分數映射到您的色彩美感而不是價值 (如您的共享代碼中所寫)。
只需將顏色轉換為您最初的美學要求中的一個因素:
dat %>%
filter(score == 1) %>%
ggplot(aes(x = sample, y = cond, color = as.factor(value))) +
geom_point()
請注意,因子得分只有3個級別,我們在x軸上缺少樣本的b級。 通過在scale_x_discrete()
指定drop = FALSE
來保持所有級別:
dat %>%
filter(score == 1) %>%
ggplot(aes(x = sample, y = cond, color = as.factor(value))) +
geom_point() +
scale_x_discrete(drop = FALSE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.