用R中的数字绘制颜色矩阵

时间:2017-06-13 13:25:14

标签: r matrix plot colors

我在R中使用plotrix绘制带有数字的颜色矩阵,这里是示例代码:

set.seed(1)

x<-matrix(rnorm(64),nrow=8)

# simulate a correlation matrix with values -0.5 to 0.5
x<-rescale(x,c(-0.5,0.5))

cellcol<-color.scale(cbind(x,c(-1,rep(1,7))),c(0,1),0,c(1,0))[,1:7]

color2D.matplot(x,cellcolors=cellcol,main="Blue to red correlations")

cellcol<-color.scale(cbind(x,c(-1,rep(1,7))),c(0,1),0,c(1,0))[,1:7]

color2D.matplot(x,cellcolors=cellcol,main="Blue to red correlations",show.values=2)

我希望数字显示为两位小数,例如0.12。我使用了show.values = 2,它基本上会显示带有两位小数的值。这应该工作!!!!但在情节中,对于0.500000,它仍显示0.5,为什么会发生这种情况?有什么建议?

1 个答案:

答案 0 :(得分:1)

一种解决方法是编辑color2D.matplot()的函数定义。

致电fix(color2D.matplot)

第97-99行应为:

 text(sort(rep((1:xdim[2]) - 0.5, xdim[1])), 
      texty, round(x, show.values), col = vcol, 
      cex = vcex)

用以下内容替换它们:

 text(sort(rep((1:xdim[2]) - 0.5, xdim[1])), 
      texty, sprintf("%.2f", round(x, show.values)), col = vcol, 
      cex = vcex)

sprintf()的第一个参数是一个格式字符串,表示该字符串应格式化为带有两个尾随零的浮点数。