簡體   English   中英

ggplot2熱圖中的值范圍

[英]ggplot2 range of values in heatmap

要在熱圖中繪制一定范圍的值,geom_point(subset)應該如下所示工作

如何從ggplot2包中僅在geom_point中繪制一個值范圍?

但是我正在嘗試將其用於此數據

"people","1","2","3","4","5","6","7","8","9"
"Ej1",0,0,0,1,0,1,1,1,0
"Ej2",0,1,1,0,0,0,1,1,0
"Ej3",0,1,1,1,0,0,0,1,1
"Ej4",0,1,0,0,1,1,0,0,1
"Ej5",1,0,1,1,0,1,1,1,1
"Ej6",1,1,0,1,1,1,0,0,0
"Ej7",0,1,1,0,0,0,0,1,1
"Ej8",0,0,1,1,1,1,1,0,0
"Ej9",1,1,0,0,1,0,0,1,1

以顯示圖像中顯示的值的范圍。 到目前為止的代碼是

library(reshape2)
library(ggplot2)
library(scales)
library(plyr)
data <- read.csv("fruits2.txt", head=TRUE, sep=",")
data$people <- factor(data$people,levels=rev(data$people))
data.m = melt(data)
#data.m <- ddply(data.m, .(variable), transform, rescale = rescale(value))
data.m[,"rescale"]<-rescale(data.m[,"value"],to=c(0,1))
fewer.labels <- c("Ej9","Ej8","Ej7","Ej6","Ej5","Ej4","Ej3","Ej2","Ej1")
p <- ggplot(data.m, aes(variable, people)) +
     geom_tile(aes(fill = rescale), colour = "white") +
     scale_y_discrete(labels=fewer.labels) +
     scale_fill_gradient(low = "red", high = "green") +
     theme(axis.text=element_text(size=8))

限制數據的代碼應該與“ people” exe的代碼相似,但是我缺少了一些東西:

geom_point(data=subset(people >= "Ej3" & people <= "Ej7"))

在此處輸入圖片說明

就像SimonG所說的,您的子設置不正確。

ggplot(subset(data.m,people %in% c("Ej7","Ej6","Ej5","Ej4","Ej3") & variable %in% c("X5","X6", "X7","X8")), aes(variable, people)) +
  geom_tile(aes(fill = rescale), colour = "white") +
  #scale_y_discrete(labels=fewer.labels) +
  scale_fill_gradient(low = "red", high = "green") +
  theme(axis.text=element_text(size=8))

生成此圖,忽略scale_y_discrete

在此處輸入圖片說明

暫無
暫無

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

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