【问题标题】:Plot ratios as correlation matrix in R绘制比率作为R中的相关矩阵
【发布时间】:2013-10-16 17:48:21
【问题描述】:

这个问题和我类似SO post.

比率的样本数据:

n=50
ratio1 <- seq(0,1.5,(1.5-0)/(n-1))
ratio2 <- seq(0,2.5,(2.5-0)/(n-1))
ratio3 <- seq(0.5,4.5,(4.5-0.5)/(n-1))
ratio4 <- seq(1,3,(3-1)/(n-1))
ratio5 <- seq(0.7,2,(2-0.7)/(n-1))

要命名比率:

rname <- c("a/b","c/d","e/f","g/h","i/j") 

所以y轴标签是c(a,c,e,g,i)和x轴c(b,d,f,h,j)

现在,假设当前测量值为:

measure.r <- data.frame(c(0.7,1.5,3.3,2.5,1.5))
colnames(measure.r) <- C("r1","r2","r3","r4","r5")

现在,我想将每个域(ratio1、ratio2...等)内的测量值绘制为有关绘制相关矩阵的参考 SO 帖子。

所以我想用一种颜色来表示当前测量值在区间内的位置(从绿色到红色,其中红色表示已达到上限)

我希望将 5 个比率绘制为此处引用的相关矩阵。每个方块将代表测量值的状态(通过其颜色)。

我尝试将箱线图bwplot 和格子图levelplot 结合起来,但没有成功。

希望以上内容有意义。请发布您对上述描述的任何问题。

【问题讨论】:

  • 我不确定我得到的“测量值”究竟是什么以及与比率的关系。此外,看到 x 和 y 轴的名称,您的绘图应该有 5*5 = 25 个正方形?如果是这样,为什么每个比率都有length 50?
  • 感谢您对此进行调查。 50 的长度是可以找到“测量”值的可能值的向量。您可以将其视为历史数据。 “测量值”是当前值。是的,如上图所示的 25 个方块(蓝色/黄色小方块)。

标签: r plot lattice


【解决方案1】:

在这里很难说出你想做什么,但这可以让你开始

# some fake data
n <- 5
x <- y <- seq_len(n)
z <- outer(x, y, "/")*rnorm(n) # create a matrix of values

# color palette function
pal <- colorRampPalette(c("green", "red"))

# setup plotting regions
layout(matrix(1:2), heights=c(0.7,0.3))

# make an image of the matrix
# ("n" turns off the axis labeling)
image(x, y, z, xaxt="n", yaxt="n", col=pal(11), asp=1, pty="s")
axis(1, x, letters[1:5])
axis(2, y, letters[6:10])

# add a cheap colorbar...
cz <- pretty(range(z))
cx <- seq_along(cz)
image(x=cx, z=matrix(cz), xaxt="n", yaxt="n", col=pal(11))
axis(1, cx, cz)

给你这样的东西:

所以你的工作就是制作z 并修改代码等。

【讨论】:

  • 我正要发布类似的东西。补充一点,levelplot(z, col.regions = colorRampPalette(c("green", "red"))) 做同样的事情更容易,因为zcolnames = letters[c(2,4,6,8,10)]rownames = letters[c(1,3,5,7,9)]。使用library(lattice)
  • 我知道 levelplot,但不幸的是,建议的解决方案不是我所追求的。还是谢谢你。
  • 很公平@Max。那么,如果您修改/编辑您的问题以阐明您正在尝试做什么,您可能会收到更多回复。
猜你喜欢
  • 2018-12-05
  • 2012-07-19
  • 2015-10-20
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 2015-06-08
相关资源
最近更新 更多