2013-02-18 14 views
9

Używam znakomitego theme_minimal() znalezionego w ggplot0.9.3, który ma białe tło. Chciałbym umieścić tytuł moich działek w niestandardowej lokalizacji w prawym górnym rogu działki. W poniższym przykładzie znam wartości x i y, ale zastanawiam się, czy istnieje sposób przekazywania wartości xmax i ymax w celu zapewnienia umieszczenia tekstu w prawym górnym rogu. Idealnie byłoby, gdyby tekst był właściwie uzasadniony.Pozycja ggplot title w prawym górnym rogu działki

#example plot 
p <- qplot(mpg, wt, data = mtcars, colour = cyl) 
p + annotate("text", x = 30, y = 5, label = "Custom Title") 

#what I would like 
p + annotate("text", y= ymax, x =xmax_or_RightJustified) 
+0

a priori, nie sądzę, że jest to prosty sposób, aby uzyskać kolor tekstu w rogu. Najbezpieczniejszym podejściem byłoby użycie maksimum (x) i maksimum (y) z danych, aby pomóc Ci je ustawić. Jednym z problemów jest to, że domyślnie 4% rozszerzenia skali x i y są dopełniane - co jeśli zmienisz je wewnątrz wywołania wykresu? Możesz uzyskać odpowiednik współrzędnych rogu, na przykład 'u <- ggplot_build (p)', wyodrębniając 'u $ panel $ zakresy [[1]] $ y.range [2]' i u $ panel $ zakresy [[1]] $ x.range [2], ale to jest kalkulacja a posteriori, której nie sądzę, że chcesz. Czy to ma przejść w funkcję tematyczną? – Dennis

Odpowiedz

11

Można użyć funkcji max() i min()annotate() wewnątrz, a następnie dodać hjust=1 aby upewnić się, że tekst jest umieszczony wewnątrz działki (uzasadnione).

p + annotate("text", y= max(mtcars$wt), x =max(mtcars$mpg),label="Custom Title",hjust=1) 
23

Można zrobić

p + annotate("text", x=Inf, y = Inf, label = "Some text", vjust=1, hjust=1) 
Powiązane problemy