2

我有这个问题。我有一个热图,(但我想这适用于每个情节)但我需要镜像我的 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)) 

这将生成以下热图 第一张热图 但我需要镜像 y 轴。从顶部的 0 和底部的 50 开始。有没有人知道我必须做些什么来改变这一点? 镜像热图

4

5 回答 5

6

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

xlim:绘图的 x 限制 (x1, x2)。请注意,“x1 > 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)))
于 2011-05-03T11:11:10.423 回答
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
于 2011-05-02T08:11:56.593 回答
0

plotrix 包中的 revaxis 函数“反转'x'和'y'轴中的一个或两个的意义”。它不能解决您的问题(尼克的解决方案是正确的),但当您需要绘制带有反向轴的散点图时会很有用。

于 2011-05-02T09:31:04.710 回答
0

我会这样使用rev

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

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

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

于 2011-05-02T10:17:12.323 回答
0

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

R - 像素矩阵的图像?

于 2011-05-02T15:48:44.697 回答