【问题标题】:R: mirror y-axis from a plotR:从绘图中镜像 y 轴
【发布时间】:2011-05-02 07:52:02
【问题描述】:

我有这个问题。我有一个热图,(但我想这适用于每个图)但我需要镜像我的 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 开始。有没有人知道我必须做些什么来改变这一点?

【问题讨论】:

    标签: r mirror heatmap axes


    【解决方案1】:

    查看 ?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)))
    

    【讨论】:

      【解决方案2】:

      这对你有用吗(不过这有点小技巧)?

      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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          我会像这样使用rev:

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

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

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

          【讨论】:

          • 这行不通,因为如果 x = 列和 y = 行,你会突然得到错误的单元格。
          • 我不完全确定你所说的列和行是什么意思?
          • 好吧,假设 x = carnames 和 y = 马力和 z = 发动机类型,然后马力突然反转。所以突然间,一辆小汽车马力大,一辆大卡车马力小。如果我会用你的方法
          【解决方案5】:

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

          R - image of a pixel matrix?

          【讨论】:

            猜你喜欢
            • 2015-03-10
            • 2011-09-27
            • 2012-06-08
            • 1970-01-01
            • 2019-02-19
            • 2018-04-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多