Beim Exportieren eines Diagramms mit ggsave()
werden fast alle Elemente (insbesondere Text) meines ggplot im Vergleich zum Anzeigen und Exportieren meines Diagramms in R Studio vergrößert. Der Grund, warum ich ggsave()
verwende, ist, dass ich die 300 dpi und die 85mm Breite bekommen kann, die für die Veröffentlichung benötigt werden.R ggplot ggsave erzeugt verschiedene Zeichenelementgrößen als einfach in RStudio zu exportieren
Wie kann ich sicherstellen, dass die ggsave()
Ausgabe übereinstimmt, was RStudio exportiert?
1. RStudio Export (richtigen Proportionen):
2. ggsave() Export (falsche Proportionen):
3. Meine Code
library(ggplot2)
library(cowplot)
library(grid)
# Make plot
fig4 <- ggplot()
# Add Landings lines
fig4 <-
fig4 + geom_line(
data = NorRus,
aes(year, tonnes, color = fishing_entity),
size = 0.75
)
# Change colors.
fig4 <-
fig4 + scale_color_manual(
values = bluesPalette,
name = NULL
)
# adjust y axis labels, remove scientific notation
fig4 <-
fig4 + scale_y_continuous(
expand = c(0,0), #removes stupid gap btwn plot & axes
breaks = seq(0, 2500000, 500000),
limits = c(0, 2500000),
labels = divide1000() # divide units by 1000 w function specified above
)
# adjust x axis labels
fig4 <-
fig4 + scale_x_continuous(
expand = c(0,0), # removes stupid gap btwn plot & axes
breaks = seq(1950, 2014, 10),
limits = c(1950, 2014)
)
# Add titles to axes
fig4 <-
fig4 + labs(
y = Land10e3,
x = "Year"
)
# Adjust axis margins
fig4 <-
fig4 + theme(
axis.title.y=element_text(margin=margin(0,20,0,0)),
axis.title.x=element_text(margin=margin(20,0,0,0))
)
# Adjust text sizes
fig4 <-
fig4 + theme(
legend.title=element_text(size=10), # Legend title
legend.text=element_text(size=8), # Legend items
axis.title=element_text(size=10), # Axis titles
axis.text=element_text(size=8) # Axis labels
)
# move legend to inside
fig4 <-
fig4 + theme(
legend.justification = c(1, 1),
legend.position = c(1, 1)
)
# Plot
plot(fig4)
# Export plot w ggsave
ggsave(
"R exports/fig4-ggsave.tiff",
plot = fig4,
device = "tiff",
dpi=150,
width=85,
height=53,
units = "mm"
)
ich mein Problem vermuten, hat etwas zu tun mit element_text()
in Punkteinheiten zu sein, während die Einheiten I mit ggsave()
in mm angegeben haben.
Diese beiden Fragen helfen mir sehr dabei, mein Problem zu lösen, aber ich weiß nicht, wie ich sie als Lösung implementieren soll!
Das produziert dies: http://imgur.com/a/EO4pG Leider muss ich auch die 85 mm Breite für die Veröffentlichung Anforderungen halten. Ich nehme an, ich könnte immer mit der Breite und den Höhen in R herumspielen, bis es gut aussieht, und dann die Größe außerhalb von R ändern, aber das ist hacky. – spops
Ok so meine hacky Behelfslösung ist dies: 'width = 85 * (14/5), height = 53 * (14/5),' der das Verhältnis in meiner zweiten verketteten Frage vorgesehen ist. Bis jetzt, bis etwas Besseres herauskommt, wende ich dieses Verhältnis auf alle meine Ggsaves an und verändere dann die Größe auf 85 mm in einem externen Programm. – spops
@spops Ich hatte das gleiche Problem mit Plots zu meiner Diplomarbeit. Nach langer Zeit hatte ich den Code satt und begann manuell mit dem Exportieren von Plots (Export -> Bild speichern -> Breite und Höhe einstellen, bis es gut aussieht -> Foto im fertigen Dokument verkleinern) Wenn es nur wenige Plots gibt, ist es nicht so schlimm scheint :) Aber ich würde auch gerne einen besseren Weg sehen, um dieses Problem zu lösen. – Piotr