2017-11-08 5 views
1

Dies könnte ein Fehler mit dem cairoDevice-Paket sein. Ich verwende dieses Paket, um aus ästhetischen Gründen Anti-Alias-Plots zu erzeugen.cairoDevice erzeugt schwarze Bilder, wenn sie in der for-Schleife verwendet werden

Die folgenden vereinfachten Code funktioniert nicht, wenn sie als eine for-Schleife auszuführen:

for (j in 1:4) { 

    Cairo(
    width = 12, 
    height = 4, 
    file = paste0("Test", j, ".png"), 
    surface = "png" 
) 

    qplot(1:j) 

    dev.off() 
} 

Das Ergebnis des obigen Codes ist 4 vollständig schwarze Bilder mit einer .png 12x4 Dimension.

Aber rannte durch einfaches Auswählen des Inhalts der Schleife, es funktioniert einfach gut (müssen Sie manuell durchlaufen, indem Sie j in der Konsole um 1 inkrementieren).

Es scheint, dass Cairo() für for-Schleifen einfach nicht mag. Ich habe versucht, mit Sys.sleep (2) zusätzliche Zeit für die Ausführung von Kairo zu geben, aber es funktioniert nicht.

Antwort

0

Nicht sicher, warum es nicht funktioniert, aber warum Cairo verwenden, um nur PNG-Dateien zu produzieren? R hat bereits ein png() Gerät.

+0

Hallo Michael. Soweit ich weiß, bietet Kairo Anti-Aliasing, das ästhetisch ansprechende Plots erzeugt. Ich verstehe auch, dass dies noch nicht Windows R ist. Bin ich in meinem Verständnis richtig? –

Verwandte Themen