R ggplot2平铺比例限制
如果这是一个明显的问题,我深表歉意,但是谁能告诉我如何在用geom瓷砖绘制的热图上设置比例?我想在同一比例上绘制几个热图(例如,绘制的颜色比例最大为10,即使其中两个最大为5),但无法计算出来 例如:R ggplot2平铺比例限制,r,ggplot2,R,Ggplot2,如果这是一个明显的问题,我深表歉意,但是谁能告诉我如何在用geom瓷砖绘制的热图上设置比例?我想在同一比例上绘制几个热图(例如,绘制的颜色比例最大为10,即使其中两个最大为5),但无法计算出来 例如: mydata<-expand.grid(X1=1:8,Y1=1:5) Z1<-floor(runif(40,min=0,max=6)) Z2<-floor(runif(40,min=0,max=11)) mydata<-cbind(mydata,Z1,Z2) mydat
mydata<-expand.grid(X1=1:8,Y1=1:5)
Z1<-floor(runif(40,min=0,max=6))
Z2<-floor(runif(40,min=0,max=11))
mydata<-cbind(mydata,Z1,Z2)
mydata<-data.frame(mydata)
p1 <- ggplot(mydata, aes(x=X1, y=Y1, z = Z1))
p1 <- p +geom_tile(aes(fill = Z1))
p2 <- ggplot(mydata, aes(x=X1, y=Y1, z = Z2))
p2 <- p +geom_tile(aes(fill = Z2))
mydata很抱歉第一次误读了这个问题-这个怎么样
colors<-c("red","orangered","orange","yellow","lightyellow",
"lightgreen","green","darkgreen","darkblue","purple")
df<-expand.grid(x=1:5,y=1:5,grp=1:4) # fill in 4 grids
df$vals<-runif(100)*10 # add some values between 0 & 10
ggplot(df) + geom_tile(aes(x,y,fill=vals)) +
facet_wrap(~ grp) +
scale_fill_gradientn(colours=colors,values=1:10,rescaler = function(x,...) x, oob = identity)
colorsRead-up-on-scales:谢谢,我读过了,没找到有用的东西。我可能有点糊涂,但你能告诉我相关的部分吗?@Troy在回答中做了很好的解释,只要确保选择一个发散的或顺序的调色板就可以了。RColorBrewer
(这里的例子:)可以很容易地帮上忙。
# and filtering out high numbers for some groups
ggplot(df[df$vals<=5|df$grp<3,]) + geom_tile(aes(x,y,fill=vals)) +
facet_wrap(~ grp) +
scale_fill_gradientn(colours=colors,values=1:10,rescaler = function(x,...) x, oob = identity)