2016-08-11 2 views
12

Ich erstelle ein Streudiagramm mit ggplot in R (R Version 3.2.1). Ich möchte den Graphen als ein TIFF-Bild in 300 DPI speichern, um es in einem Journal zu veröffentlichen. Mein Code mit ggsave oder tiff() mit dev.off scheint jedoch nicht zu funktionieren und speichert es nur in 96 DPI. Jede Hilfe würde sehr geschätzt werden !! Unten ist ein Beispiel meines Codes beiden Methoden:Speichern eines Bildes mit hoher Auflösung in R

library(ggplot2) 

x <- 1:100 
y <- 1:100 

ddata <- data.frame(x,y) 

library(ggplot2) 

#using ggsave 
ggplot(aes(x, y), data = ddata) + 
    geom_point() + 
    geom_smooth(method=lm, fill = NA, fullrange=TRUE, color = "black") 

ggsave("test.tiff", units="in", width=5, height=4, dpi=300, compression = 'lzw') 

#using tiff() and dev.off 
tiff('test.tiff', units="in", width=5, height=4, res=300, compression = 'lzw') 

ggplot(aes(x, y), data = ddata) + 
    geom_point() + 
    geom_smooth(method=lm, fill = NA, fullrange=TRUE, color = "black") 

dev.off() 

Der Ausgang ist ein 96 DPI mit einer Breite von 1500 Pixeln und eine Höhe von 1200 Pixeln.

+0

Sie müssen möglicherweise Höhe und Breite (und Einheiten) einstellen –

+1

Der Code funktioniert mit simulierten Daten! Das Problem sollte an Ihrem Grundstück liegen, so dass ein reproduzierbares Beispiel benötigt wird. – Robert

+0

Einverstanden. Funktioniert gut für mich - was sind die Pixel-Dimensionen Ihrer Ausgabe, und was sagt ggplot, wenn Sie 'ggsave()' aufrufen? –

Antwort

11

Sie können dies verwenden. Fügen Sie Ihren ggplot-Code nach der ersten Codezeile ein und beenden Sie ihn mit dev.off().

tiff('test.tiff', units="in", width=5, height=5, res=300) 
#insert ggplot code 
dev.off() 

res=300 gibt an, dass Sie eine Figur mit einer Auflösung von 300 dpi benötigen. Die Bilddatei mit dem Namen "test.tiff" wird in Ihrem Arbeitsverzeichnis gespeichert.

Verwandte Themen