簡體   English   中英

在ggplot2中的dotplot中轉換geom_tile

[英]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)

<code> drop = false </ code>的第三個情節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM