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