Używam geom_segment
do wykreślenia osi czasu aktywności. Wszystko dzieje się na tej samej linii, a ponieważ chcę przedstawić to razem z innymi wykresami, wolałbym znacznie zmniejszyć oś y. Wydaje się, że rozmiar szarego obszaru wykresu w ggplot2 jest zawsze kwadratowy, niezależnie od tego, czy skaluje go większy czy mniejszy. Czy istnieje sposób, aby powiedzieć, że chcę x = 500 y = 50 lub coś w tym stylu?Czy można zmienić proporcje wykresu ggplot2 z kwadratu na prostokąt?
df2 <- structure(list(Activities =
structure(c(2L, 1L, 2L, 1L, 2L, 3L, 1L, 2L, 2L, 2L, 2L, 5L,
4L, 3L, 2L, 2L),
.Label = c("authoring", "hacking", "learning",
"surfing", "tasks"),
class = "factor"),
Start = c(14895L, 15005L, 16066L, 16226L, 16387L, 16394L,
27030L,27532L, 27600L, 27687L, 28660L, 28713L,
29154L, 30264L, 30345L, 32245L),
End = c(15005L, 16066L, 16226L, 16387L,16394L, 16509L,
27491L, 27591L, 27628L, 28450L, 28704L, 29109L,
30250L, 30345L, 31235L, 33794L)),
.Names = c("Activities", "Start", "End"),
class = "data.frame", row.names = c(NA, -16L))
a <- 0:23
Oto moja działka:
ggplot(df2, aes(colour=Activities)) +
geom_segment(aes(x=Start, xend=End, y=0, yend=0), size=10) +
scale_x_continuous(breaks=a * 60 * 60, labels=a) +
xlab("Time") + ylab("") +
scale_y_continuous(breaks=NULL, limits=c(-.1, .1))
Rozmiar działki to rozmiar aktualnego urządzenia graficznego. Zmień to, a twoja fabuła dostosuje się automatycznie. Jeśli chcesz ustawić rozmiar podczas zapisywania na dysku, użyj 'ggsave()' i ustaw argumenty wielkości wydruku. – Andrie
@Andrie: Zrobić odpowiedź? – Roland
@Andrie możesz również użyć 'coord_fixed', aby ustalić stosunek między osią X i Y, zobacz moją odpowiedź. Tak naprawdę otrzymałem tę odpowiedź, którą masz jakiś czas temu :). –