Próbuję oznaczyć dość prosty wykres rozrzutu w R. Oto, czego używam:
plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)
Wynik jest mierny, jak widać (kliknij, aby powiększyć):
Próbowałem to zrekompensować za pomocą textxy
funkcji, ale nie jest lepiej . Powiększanie samego obrazu nie działa w przypadku gęstych klastrów.
Czy jest jakaś funkcja lub prosty sposób na zrekompensowanie tego i pozostawienie etykiet R, które się nie nakładają ?
Oto mały podzbiór danych, które mam:
Name;SI;TI
01_BAD_talking_head;6.944714;4.421208
01_GOOD_talking_head;5.680141;4.864035
01_GOOD_talking_head_subtitles;7.170114;4.664205
r
data-visualization
scatterplot
slhck
źródło
źródło
identify()
Chodźmy ręcznie zdecydować, gdzie umieścić etykietę! To nie jest idealne, ale z proponowanych rozwiązań to działa najlepiej dla mnie.Odpowiedzi:
Sprawdź nowy pakiet ggrepel . ggrepel zapewnia geom dla ggplot2, aby odeprzeć nakładające się etykiety tekstowe. Działa zarówno dla geom_text, jak i geom_label.
Rysunek pochodzi z tego postu na blogu .
źródło
directlabels
Pakiet robi. Ze swojej strony internetowej :Jednak nie zawsze jest to możliwe w przypadku gęstych wykresów.
Oto krótki przykład:
Udało mi się pozbyć punktowego kolorowania
col="black"
, ale nie etykiet.źródło
direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))
powinno uzyskać podobny wynik.library(lattice)
aby dostać sięxyplot
do pracy.Proponuję spojrzeć na
wordcloud
paczkę. Wiem, że ten pakiet nie skupia się dokładnie na punktach, ale na samych etykietach, a także styl wydaje się raczej naprawiony. Mimo to wyniki, które uzyskałem, były dość oszałamiające. Zauważ też, że omawiana wersja pakietu została wydana mniej więcej w czasie, w którym zadałeś pytanie, więc wciąż jest bardzo nowa.http://blog.fellstat.com/?cat=11
źródło
Z kilkoma wykresami, z którymi pracowałem, napotkałem podobny problem i napisałem podstawowy pakiet, który wykorzystuje symulację pola siłowego do dostosowania lokalizacji obiektów. Przewagą niektórych wyżej wymienionych rozwiązań jest dynamiczna regulacja względnej bliskości obiektu w 2D. Chociaż możliwa jest znaczna poprawa, w tym heurystyka i integracja z ggplot itp., Wydaje się, że zadanie zostało wykonane. Poniżej przedstawiono funkcjonalność:
Na razie nie ma heurystyki dla różnych obszarów i rozkładów punktowych, ponieważ rozwiązanie spełniło moje potrzeby i chciałem szybko znaleźć coś pomocnego, ale dodam je w perspektywie średnioterminowej. W tej chwili zalecam skalowanie wykresów do 100 x 100 i wstecz oraz nieznaczne ulepszenie domyślnych parametrów przyciągania i odpychania, jak jest to uzasadnione.
źródło
W przypadku, gdy po prostu nie możesz sprawić, by etykiety działały poprawnie tak, jak zostały utworzone przez R, pamiętaj, że zawsze możesz zapisać wykresy w formacie wektorowym (np. .Pdf) i przeciągnąć je do programu do edycji, takiego jak InkScape lub Adobe Illustrator.
źródło
Kilka dodatkowych narzędzi do obejrzenia w R:
spread.labels
Funkcja wplotrix
pakieciethigmophobe.labels
wplotrix
paczcespread.labs
funkcja wTeachingDemos
pakiecieTkIdentify
funkcja wTeachingDemos
pakiecieTo nie zrobi wszystkiego dla ciebie, ale jeden z nich może być częścią rozwiązania.
źródło