2013-11-18 2 views
7

Я пытаюсь построить следующий вектор с помощью ggplot:ggplot: ось не пересекаются в начале координат

library(ggplot2) 
vec =c(44.55 ,47.81 ,40.28 ,44.32 ,53.57 ,45.68 ,52.02 ,44.27 ,33.44 ,41.16) 
by = c("1994-04-30", "1994-05-31", "1994-06-30", "1994-07-31", "1994-08-31", "1994-09-30", "1994-10-31", "1994-11-30", "1994-12-31", "1995-01-31") 
vec.zoo = zoo(vec, order.by = as.Date(by)) 


g <-ggplot(vec.zoo) + 
geom_line (aes(x=index(vec.zoo), y=coredata(vec.zoo)), color = "cadetblue4", size = 0.6) + 
theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
xlab("Time") + 
ylab("Hit Ratio") + 
scale_y_continuous(limits = c(0, 100)) 
scale_x_date(limits = c(start(vec.zoo), end(vec.zoo))) 
g 

Хотя я установил пределы оси, они до сих пор не пересекаются в начале координат. Я хотел бы установить пересечение на x= 0 и y = start(vec).

Вот результат я получаю:

enter image description here

Любая помощь будет оценена !! Благодаря!!

ответ

9

Вы можете использовать аргумент expand в своих scale звонках. Установка expand к нулю, удаляет по умолчанию, небольшой разрыв между данными и осями (см here)

g <-ggplot(vec.zoo) + 
    geom_line (aes(x=index(vec.zoo), y=coredata(vec.zoo)), color = "cadetblue4", size = 0.6) + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
    xlab("Time") + 
    ylab("Hit Ratio") + 
    scale_y_continuous(limits = c(0, 100), expand = c(0, 0)) + 
scale_x_date(limits = c(start(vec.zoo), end(vec.zoo)), expand = c(0, 0)) 
g 
+0

Совершенная. Спасибо!! – Mayou

Смежные вопросы