Chcę dodać adnotację do ostatniego aspektu działki za pomocą następującego kodu:
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p <- p + facet_grid(. ~ cyl)
p <- p + annotate("text", label = "Test", size = 4, x = 15, y = 5)
print(p)
Ale ten kod dodaje adnotacje do tekstu na każdym aspekcie. Byłbym bardzo wdzięczny za wskazówki, jak uzyskać tekst z adnotacjami tylko na jednym aspekcie.
r
ggplot2
facet
facet-wrap
facet-grid
MYaseen208
źródło
źródło
Odpowiedzi:
Zwykle zrobiłbyś coś takiego:
Powinien działać bez całkowitego określenia zmiennej czynnika, ale prawdopodobnie spowoduje wyświetlenie ostrzeżeń:
źródło
geom_text
z tylko jednym wierszem.annotate()
...?Oto fabuła bez adnotacji tekstowych:
Utwórzmy dodatkową ramkę danych do przechowywania adnotacji tekstowych:
Alternatywnie możemy ręcznie określić położenie każdej etykiety:
Możemy również oznaczać wykresy w dwóch aspektach:
Uwagi:
-Inf
iInf
do umieszczania tekstu na krawędziach panelu.hjust
i,vjust
aby dostosować justowanie tekstu.dat_text
powinna mieć kolumnę, która współpracuje zfacet_grid()
lubfacet_wrap()
.źródło
colnames()
tekst jestdata.frame
zgodny z danymi, które zamierzasz wykreślić.Jeśli ktoś szuka łatwego sposobu oznaczania aspektów dla raportów lub publikacji, pakiet
egg
( CRAN ) ma całkiem sprytnetag_facet()
itag_facet_outside()
funkcje.Tag w środku
Domyślna
Uwaga: jeśli chcesz zachować pasek tekstu i tło, spróbuj dodać
strip.text
istrip.background
przywrócićtheme
lub usunąćtheme(strip.text = element_blank(), strip.background = element_blank())
oryginalnątag_facet()
funkcję.Wyrównaj do prawego górnego rogu i użyj cyfr rzymskich
Wyrównaj do dołu do lewej i użyj wielkich liter
Zdefiniuj własne tagi
Tag na zewnątrz
Edycja : dodawanie kolejnej alternatywy przy użyciu pakietu stickylabeller
Utworzony przez pakiet reprex (v0.2.1)
źródło
tag_facet
przez nixingstrip.text = element_blank()
Warning: Ignoring unknown parameters: strip.text
Myślę, że powyższa odpowiedź lab = "Text" jest bezużyteczna, poniższy kod również jest w porządku.
Jeśli jednak chcesz inaczej oznaczać różne pod-wykresy, będzie dobrze w ten sposób:
źródło
Rozszerzając nieco doskonałą odpowiedź jorana, aby wyjaśnić, jak działa etykieta dataframe.
Możesz myśleć o „mpg” i „wt” jako odpowiednio współrzędnych x i y (uważam, że łatwiej jest śledzić oryginalne nazwy zmiennych niż zmieniać ich nazwy, tak jak w odpowiedzi Kamila). Potrzebujesz jednego wiersza na etykietę, a kolumna „cyl” pokazuje, z którym aspektem jest powiązany każdy wiersz.
źródło
Nie wiedziałem o
egg
pakiecie, więc tutaj jest prosteggplot2
rozwiązanie pakietoweźródło