2012-10-13 15 views

Odpowiedz

37

Nie jest jasne, czy chcesz, aby 7.1 był częścią osi Y, czy chcesz po prostu nadać etykietę linii. Zakładając ten pierwszy, możesz użyć scale_y_continuous() do zdefiniowania własnych przerw. Coś takiego może robić co chcesz (trzeba trochę błahy najprawdopodobniej):

plot1+ geom_hline(aes(yintercept=h)) + 
    scale_y_continuous(breaks = sort(c(seq(min(df$y), max(df$y), length.out=5), h))) 

enter image description here

Zakładając, że ten ostatni, to prawdopodobnie więcej, co chcesz:

plot1 + geom_hline(aes(yintercept=h)) + 
    geom_text(aes(0,h,label = h, vjust = -1)) 

enter image description here

+0

Dziękuję bardzo za rozwiązanie scale_y_continuous. –

+0

Co zrobić, jeśli linia jest nakładką na wykresie słupkowym z wartościami współczynnika x. –

+0

Czy można wyświetlić etykietę na osi Y, ale po prawej stronie wykresu? –

5

Co powiesz na coś takiego?

plot1 + geom_hline(aes(yintercept=h), colour="#BB0000", linetype="dashed") + 
geom_text(aes(0, h, label = h, vjust = -1), size = 3) 
+0

chyba że masz swój umysł ustawiony na oznakowanie go na samej osi. Możesz zwiększyć odstępy między znacznikami, tak, że jest ich 7,1, ale to spowodowałoby, że twój wątek byłby zbyt zajęty. – Maiasaura

+0

+1 - Widzę, że mamy podobne długości fal. – Chase

+0

Dziękuję bardzo. –

2

Podobny do Chasego solution ze zmianą użycia istniejących etykiet.


ggplot_build(plot1)$layout$panel_ranges[[1]]$y.major_source może być użyty do wyodrębnienia exisitng etykiety i dodawać nowe h.

plot1 + geom_hline(aes(yintercept=h)) + 
    scale_y_continuous(breaks = sort(c(ggplot_build(plot1)$layout$panel_ranges[[1]]$y.major_source, h))) 

enter image description here

Powiązane problemy