2017-03-01 34 views
8

Jest to podstawa, w której mogę kontrolować zakres osi xiy, gdzie dokładnie należy narysować linię.narysuj to w ggplot. Sterowanie linią osi y w zakresie

plot(mtcars$mpg, mtcars$hp, ylim = c(0, 400), xlim = c(0, 50), axes = F, xlab = 'mpg', ylab = 'hp', pch = 16) 
axis(side = 2, at = seq(100, 400, 100)) 
axis(side = 1, at = seq(10, 30, 10)) 

enter image description here

ggplot(data = mtcars, aes(x = mpg, y = hp))+geom_point()+ 
theme(panel.background = element_blank())+ 
scale_x_continuous(breaks = seq(10, 30, 10), limits = c(0, 50))+ 
scale_y_continuous(breaks = seq(100, 400, 100), limits = c(0, 400)) 

enter image description here

Jak dodać linię osi dokładnie jak bazowej działce? Próbowałem scale_y_continuous i scale_x_continuous, ale zawsze rysuje do końca fabuły.

Odpowiedz

6

Można się tam dostać za pomocą pakietu ggthemes:

ggplot(data = mtcars, aes(x = mpg, y = hp))+geom_point()+ 
    geom_rangeframe(data = data.frame(mpg = c(10, 30), hp = c(100, 400))) + 
    theme_tufte() + 
    scale_x_continuous(breaks = seq(10, 30, 10), limits = c(0, 50))+ 
    scale_y_continuous(breaks = seq(100, 400, 100), limits = c(0, 400)) 

enter image description here

Ty może również zwrócić je ręcznie, jeśli chcesz:

ggplot(data = mtcars, aes(x = mpg, y = hp))+geom_point()+ 
    geom_segment(aes_all(c('x', 'y', 'xend', 'yend')), 
       data = data.frame(x = c(0, 10), xend = c(0, 30), y = c(100, 0), yend = c(400, 0))) + 
    theme(panel.background = element_blank()) + 
    scale_x_continuous(breaks = seq(10, 30, 10), limits = c(0, 50), expand = c(0, 0))+ 
    scale_y_continuous(breaks = seq(100, 400, 100), limits = c(0, 400), expand = c(0, 0)) 

enter image description here

+0

Thanks , JA próbowałem go wcześniej (używając theme_hc()). Ale chcę to zrobić bez użycia ggthemes. Czy to możliwe ? – PoisonAlien

+0

Sądzę, że można ręcznie rysować segmenty podczas obracania skali. – Axeman

+0

tak, to właśnie miałem na myśli. Spróbuję tego. Zaskakujące, że ggplot będący tak dojrzałym nie ma na to żadnej możliwości. – PoisonAlien