Функция textplot: Как центрировать текст в таблице? - PullRequest
1 голос
/ 20 февраля 2020

Я не могу правильно сориентировать текст в таблицах с помощью функции textplot.

Я написал следующий код:

jpeg("Equity_Regions_TAA_Scorecard.jpg", width = 7.0, height = 3.5, units="in", res=200, pointsize=5)

  result <- cbind(as.numeric(last(na.locf(signal.combined))),
                 round(as.numeric(last(na.locf(eps.pct))), digits=2),
                 round(as.numeric(last(na.locf(err.pct))), digits=2),
                 round(as.numeric(last(na.locf(pmi.pct))), digits=2),
                 round(as.numeric(last(na.locf(exp.pct))), digits=2),
                 round(as.numeric(last(na.locf(surprise.pct))), digits=2),
                 round(as.numeric(last(na.locf(momentum.pct))), digits=2))

  colnames(result) <- c("TAA Score", "EPS", "ERR", "PMI", "Expectations", "Surprises", "Momentum")

  row.names(result) <- as.character(names(signal.combined))

  for (j in 2:ncol(result)) {
    for (i in 1:nrow(result)) {

      result[i, j] <- if (result[i, j] >= 80) {
        "++"
      } else if (result[i, j] < 80 & result[i, j] >= 60) {
        "+"
      } else if (result[i, j] < 60 & result[i, j] >= 40) {
        "o"
      } else if (result[i, j] < 40 & result[i, j] >= 20) {
        "-"
      } else {
        "--"
      }
    }
  }

  cols <- matrix(NA, nrow=nrow(result), ncol=ncol(result))

  cols[,1] <- col1

  for (j in 2:ncol(result)) {
    for (i in 1:nrow(result)) {

      cols[i, j] <-   if(result[i, j] =="++") {
        "darkgreen"
      } else if (result[i, j] =="+") {
        "forestgreen"
      } else if (result[i, j] =="o") {
        "dimgray"
      } else if (result[i, j] =="-") {
        "firebrick1"
      } else {
        "firebrick"
      }

    }
  }

  textplot(as.data.frame(result), col.data=cols, rmar = 1.0, cmar = 1.0,  max.cex=1.5, cex.main=1.5,
           halign = "center", valign = "center", col.rownames = col1, col.colnames = col1,
           wrap.rownames=10, wrap.colnames=10, mar = c(0,0,3,0)+0.1)

  title(main="Equity Regions TAA Scorecard")

dev.off()

Я использую следующая версия R:

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          4.3                         
year           2017                        
month          11                          
day            30                          
svn rev        73796                       
language       R                           
version.string R version 3.4.3 (2017-11-30)
nickname       Kite-Eating Tree            

На данный момент это мой вывод, где видно, что текст в таблице не выровнен и не центрирован: enter image description here

Я думаю, что наиболее важный фрагмент кода, вероятно, следующий:

textplot(as.data.frame(result), col.data=cols, rmar = 1.0, cmar = 1.0,  max.cex=1.5, cex.main=1.5,
           halign = "center", valign = "center", col.rownames = col1, col.colnames = col1,
           wrap.rownames=10, wrap.colnames=10, mar = c(0,0,3,0)+0.1)

Я что-то здесь не так делаю? Очевидно, что тексты не центрируются, несмотря на использование таких команд, как halign = "center", valign = "center".

. Любая помощь будет принята с благодарностью!

...