R:从图中镜像y轴

时间:2011-05-02 07:52:03

标签: r mirror heatmap axes

我有这个问题。我有一个热图,(但我想这适用于每个情节)但我需要镜像我的y轴。

我在这里得到了一些示例代码:

library(gstat)
x <- seq(1,50,length=50)
y <- seq(1,50,length=50)
z <- rnorm(1000)
df <- data.frame(x=x,y=y,z=z)
image(df,col=heat.colors(256)) 

这将生成以下热图 First heatmap 但我需要y轴镜像。从顶部的0和底部的50开始。有没有人知道我必须做些什么才能改变这个? mirrored heatmap

5 个答案:

答案 0 :(得分:6)

请参阅帮助页面?plot.default,指定

  

xlim:图的x限制(x1,x2)。注意'x1&gt; x2'是            允许并导致'反转轴'。

library(gstat)
x <- seq(1,50,length=50)
y <- seq(1,50,length=50)
z <- rnorm(1000)
df <- data.frame(x=x,y=y,z=z)

所以

image(df,col=heat.colors(256), ylim = rev(range(y)))

答案 1 :(得分:1)

这对你有用吗(虽然这有点像黑客)?

df2<-df
df2$y<-50-df2$y #reverse oredr
image(df2,col=heat.colors(256),yaxt="n") #avoid y axis
axis(2, at=c(0,10,20,30,40,50), labels=c(50,40,30,20,10,0)) #draw y axis manually

答案 2 :(得分:0)

plotrix包中的revaxis函数“反转了'x'和'y'轴之一或两者的感觉”。它不能解决您的问题(Nick的解决方案是正确的),但是当您需要绘制具有反向轴的散点图时,它可能很有用。

答案 3 :(得分:0)

我会这样使用rev

df <- data.frame(x=x,y=rev(y),z=z)

如果您不知道,请注意df实际上是一个功能。覆盖时可能要小心。如果你rm(df),事情就会恢复正常。

不要忘记按照尼克的建议重新标记y轴。

答案 4 :(得分:0)

对于向下增加的垂直轴,我为以下问题提供了两种方式(两种不同的答案):

R - image of a pixel matrix?