przypadku złożenia ostatecznej Artykuł I zostały poproszone, aby zaktualizować swoje dane, tak aby spełniać następujące wymagania:Jak uzyskać dokładne rozmiary czcionek, linii, punktów i figur w ggplot2?
- linie osi są 0,25 mm
- linie osi dookoła z kleszczy stoi w
- linii danych wynosi 0,5 mm
- czcionki 10pt
- dane powinny być 80 lub 169 mm, szerokości
- musi wynosić 300 dpi
Co próbowałem:
library(ggplot2)
library(cowplot)
theme_set(theme_bw())
x <- rnorm(100)
mydata <- data.frame(x = x,
y = x^2 + runif(100),
z = rep(letters[1:4], 25))
p <- ggplot(data = mydata, aes(x, y)) +
geom_point(aes(color = z)) +
geom_smooth(color = 'black', se = FALSE, size = 0.5) +
theme(text = element_text(family = 'Times', size = 10, color = 'black'),
axis.ticks.length = unit(-0.1, 'cm'),
axis.text.x = element_text(margin = margin(t = 4, unit = 'mm')),
axis.text.y = element_text(margin = margin(r = 4, unit = 'mm')),
panel.grid = element_blank(),
axis.line = element_line(size = 0.25),
legend.position = c(0.5, 0.75))
p
ggsave(plot = p,
filename = 'myplot.png',
width = 80, height = 50, dpi = 300, units = 'mm')
p2 <- cowplot::plot_grid(plotlist = list(p, p, p, p), nrow = 1)
ggsave(plot = p2,
filename = 'mymultipleplot.png',
width = 169, height = 50, dpi = 300, units = 'mm')
która zwraca następujące dwie działki:
mogę dowiedzieć się, jak radzić sobie w niektórych kwestiach tutaj (na przykład Pozycje legendy), ale mam problemy z następujących czynności:
- Jak mogę uzyskać kleszczy wokół górnej i prawej osi?
- Jak mogę uzyskać prawidłowe rozmiary ...
- Wyglądają one znacznie większe niż 10 pkt. (pobierz je lub otwórz w nowym oknie, aby zobaczyć wersję nieskalowaną)
- Rozmiary nie są zachowane na dwóch figurach, mimo że zostały określone w motywie (czcionka, linia).
- Nie wiem, jak potwierdzić, że linie mają prawidłowy rozmiar (w punktach lub mm) ... czy
ggsave
ma własne skalowanie?
aktualizacja Dla mojego obecnego zadania I eksportowane jako pliki SVG i edytowanej je w Inkscape. Zajęło to kilka godzin, ale było łatwiejsze, niż uzyskanie ggplota, by wykręcić się do specyfikacji.
Ale byłoby pomocne wiedzieć na przyszłość, jak to zrobić programowo w ggplot2.
Na pytanie 1 (Jak mogę uzyskać kleszczy wokół górnej i prawej osi?), Zobaczyć nowe 'sec.axis' argument' scale_ 'in [ggplot 2.2.0] (https://blog.rstudio.org/2016/11/14/ggplot2-2-2-0/). Spróbuj na przykład 'ggplot (mpg, aes (displ, hwy)) + geom_point() + scale_x_continuous (sec.axis = dup_axis()) + scale_y_continuous (sec.axis = dup_axis())'. – Henrik
Dla mnie wygląda na to, że etykiety osi "x" i "y" są tuż za 10 pkt, a cały tekst jest mniejszy. Przy rozdzielczości 300 dpi (ppi), 10 punktów to 10/72 * 300 pikseli lub około 42 pikseli. – mvkorpel
Powinieneś dokładniej opisać, co masz na myśli, ponieważ rozmiary nie są utrzymywane na dwóch figurach. Szerokości linii i rozmiary czcionek wydają się być takie same na obu rysunkach. – mvkorpel