【问题标题】:levelplot in lattice R: How to get right number of decimals displayed in cells格子 R 中的 levelplot:如何在单元格中显示正确的小数位数
【发布时间】:2018-01-23 15:51:32
【问题描述】:

在 lattice 中使用 levelplot,我已经弄清楚了如何显示每个单元格的相应值。对于矩阵 m:

myPanel <- function(x,y,z, ...){
 panel.levelplot(x,y,z,...) 
 panel.text(x,y, round(m,2),col=bw[col.m])
}
levelplot(m, col.regions=col.range, colorkey=NULL, xlab=NULL, ylab=NULL,
      scales = list(x = list(draw = FALSE),  y = list(draw = FALSE)),
      panel= myPanel)

四舍五入的矩阵值为

round(m,2)
     13    14    15    16    17    18
GDcsp -0.44 -0.34 -0.39 -0.35 -0.53 -0.60
GDsor  0.14  0.07  0.03  0.01  0.06  0.09
GDdup  0.43  0.36  0.34  0.36  0.46  0.52
GDhsw  0.22  0.05  0.11  0.00  0.20  0.26
Gdwpa  0.17  0.25  0.32  0.37  0.46  0.47

问题是 -0.60 和 0.00 在相应的单元格中分别显示为 0.6 和 0,而我希望所有数字都带有两位小数。任何解决此问题的想法都将受到欢迎。

【问题讨论】:

    标签: r lattice levelplot


    【解决方案1】:
    myPanel <- function(x,y,z, ...){
      panel.levelplot(x,y,z,...) 
      panel.text(x,y, sprintf("%.2f", m))
    }
    levelplot(m, colorkey=NULL, xlab=NULL, ylab=NULL,
              scales = list(x = list(draw = FALSE),  y = list(draw = FALSE)),
              panel= myPanel)
    

    您可以使用sprintf 强制输出为小数点后两位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多