Progress: Mehrere Fortschrittsbalken

Erstellt am 27. Dez. 2015  ·  7Kommentare  ·  Quelle: r-lib/progress

Wäre großartig. ZB wenn es einen Fortschrittsbalken innerhalb eines Fortschrittsbalkens gibt...

Hilfreichster Kommentar

Ja genau.

Ich denke, wir können einen globalen Stapel aktiver Fortschrittsbalken haben. In Displays, die nur einen Fortschrittsbalken unterstützen, insbesondere R Studio, würden wir nur den obersten anzeigen und möglicherweise eine Zusammenfassung für den Rest anzeigen. ZB für drei Ebenen:

85% | 34% | 50% [====================--------------------] ETA 13s

Bei Terminals mit angemessener ANSI-Unterstützung können wir alle Fortschrittsbalken (nun, bis zu 10-20) gleichzeitig anzeigen.

Alle 7 Kommentare

Es wäre schön, wenn so etwas funktioniert:

pb1 <- progress_bar$new(total = 100)
for(i in 1:100){
  pb1$tick()
  pb2 <- progress_bar$new(total = 100)  
  for(j in 1:100){
    pb2$tick()
    Sys.sleep(1/1000)
    }
}

Ja genau.

Ich denke, wir können einen globalen Stapel aktiver Fortschrittsbalken haben. In Displays, die nur einen Fortschrittsbalken unterstützen, insbesondere R Studio, würden wir nur den obersten anzeigen und möglicherweise eine Zusammenfassung für den Rest anzeigen. ZB für drei Ebenen:

85% | 34% | 50% [====================--------------------] ETA 13s

Bei Terminals mit angemessener ANSI-Unterstützung können wir alle Fortschrittsbalken (nun, bis zu 10-20) gleichzeitig anzeigen.

Ich denke, eine Möglichkeit, 3 oder 4 gleichzeitige Fortschrittsbalken in einer Zeile zu unterstützen, besteht darin, Unicode-Braille-Muster zu verwenden

[⠿⠿⠟⠛⠛⠛⠒⠒⠒⠒       ]

@jimhester das ist schlau, aber leider auch sehr begrenzt.

Die folgende Funktion, die ich gebaut habe, ist sehr grob, aber warum ist so etwas wie unten nicht möglich? Ich würde es gerne in einem Fortschrittspaket mit den Fortschrittsoptionen haben.

Daten neu erstellen:

df <- data.frame(samplecol=c(1:50),
           file=c(1:50))
df$file <- paste0("file",df$file)

x <-function() {Sys.sleep(1/100)}
y <-function() {Sys.sleep(1/20)}

Funktion:

doubleProgressBar <- function(x, y) {
    for (i in 1:100) {
      x()
        for(j in 1:50){ 
          y()
          cat("\014")
          writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")), 
                      paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
        }
      cat("\014")
      writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")), 
                   paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
    }
}

###Does what I want, but with crude text entry. 
###Would be nice to have a package with nice entry have a double bar
doubleProgressBar(x,y)

Dies wäre einfach, wenn alle R-Terminals die ANSI-Escape-Sequenz unterstützen würden, um den Cursor nach oben zu bewegen. Leider tun dies einige (insbesondere das Standard-Windows-Terminal) nicht, sodass Sie nur die letzte Textzeile mit \r .

Können Sie eine Option hinzufügen, um vollständige ANSI-Escape-Sequenzen zu verwenden?

Alternativ können Sie den horizontalen Raum zwischen den Fortschrittsbalken aufteilen...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen