Mam wykres, w którym oś X jest czynnikiem, którego etykiety są długie. Chociaż prawdopodobnie nie jest to idealna wizualizacja, na razie chciałbym po prostu obrócić te etykiety, aby były pionowe. Zrozumiałem tę część za pomocą poniższego kodu, ale jak widać, etykiety nie są całkowicie widoczne.
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + opts(axis.text.x=theme_text(angle=-90))
q + theme(axis.text.x=element_text(angle = -90, hjust = 0))
theme(axis.text.x=element_text(angle = 90, vjust = 0.5))
. W przypadku ggplot2 0.9.3.1 wydaje się to rozwiązaniem.q + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
JEST JEDNĄ PRACĄ OBECNIE.theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))
daje dobre wynikiAby tekst na etykietach zaznaczenia był w pełni widoczny i czytany w tym samym kierunku co etykieta na osi y, zmień ostatni wiersz na
źródło
Posługiwać się
coord_flip()
W rozdziale 3.9 R dla Data Science Wickham i Grolemund mówią dokładnie o tym pytaniu:
źródło
Chciałbym przedstawić alternatywne rozwiązanie , od czasu wprowadzenia funkcji obracania obszaru roboczego wymagane było solidne rozwiązanie podobne do tego, co zamierzam zaproponować w najnowszej wersji ggtern .
Zasadniczo musisz określić pozycje względne za pomocą trygonometrii, budując funkcję zwracającą
element_text
obiekt, dany kąt (tj. Stopnie) i pozycję (tj. Jedną z informacji x, y, góra lub prawo).Szczerze mówiąc, moim zdaniem, uważam, że należy udostępnić opcję „auto”
ggplot2
dla argumentówhjust
ivjust
, przy określaniu kąta, w każdym razie, pozwala pokazać, jak działa powyższe.Co powoduje:
źródło
rads = (-angle - positions[[ position ]])*pi/180
lepszych miejsc docelowych. Zwróć uwagę na dodatkowy znak minus przed kątem. W każdym razie dzięki za kod :)W ggpubr oferty pakietowe skrót, który robi słusznie domyślnie (po prawej tekst wyrównanie, polu tekstowym środkowy align zaznaczyć):
Utworzono 06.11.2018 przez pakiet reprezentx (v0.2.1)
Znaleziono podczas wyszukiwania w GitHub odpowiednich nazw argumentów: https://github.com/search?l=R&q=element_text+angle+90+vjust+org%3Acran&type=Code
źródło
Alternatywnie
ggplot 3.3.0
zapewniaguide_axis(n.dodge = 2)
(jakoguide
argument doscale_..
lub jakox
argument doguides
) rozwiązanie problemu nadmiernego wydruku poprzez unikanie etykiet w pionie. W tym przypadku działa całkiem dobrze:źródło
Aby uzyskać czytelne etykiety x tick bez dodatkowych zależności, należy użyć:
Powoduje to obrócenie etykiet zaznaczenia o 90 ° w kierunku przeciwnym do ruchu wskazówek zegara i wyrównanie ich w pionie na ich końcu (
hjust = 1
) i wyśrodkowanie w poziomie z odpowiednim znacznikiem (vjust = 0.5
).Pełny przykład:
Zauważ, że pionowe / poziome parametry Uzasadnienie
vjust
/hjust
zelement_text
odnoszą się do tekstu. Dlategovjust
odpowiada za wyrównanie w poziomie .Bez
vjust = 0.5
tego wyglądałoby to tak:Bez
hjust = 1
tego wyglądałoby to tak:Jeśli z jakiegoś powodu (przewodowy) Państwo chcieli obrócić kleszcza etykiet 90 ° w prawo (tak, że można je czytać od lewej) będzie trzeba użyć:
q + theme(axis.text.x = element_text(angle = -90, vjust = 0.5, hjust = -1))
.Wszystko to zostało już omówione w komentarzach do tej odpowiedzi, ale tak często wracam do tego pytania, że chcę odpowiedzi, z której mogę po prostu skopiować bez czytania komentarzy.
źródło
Alternatywą
coord_flip()
jest użycieggstance
pakietu. Zaletą jest to, że ułatwia łączenie wykresów z innymi typami wykresów i, co ważniejsze, można ustawić stałe współczynniki skali dla układu współrzędnych .Utworzono 2020-03-11 przez pakiet reprezentx (v0.3.0)
źródło