2015-07-28 3 views
0

Я пытаюсь изучить ggvis, и я работаю над Бостоном в качестве учебника. В принципе, я пытаюсь преобразовать ggplot, над которым я работал, в ggvis по данным Бостона в R. Похоже, я не могу добавить горизонтальную среднюю линию в ggvis. Хотя я нашел некоторые взломы после googling, но я все еще не мог понять, как я мог бы работать в своем коде. Вот мой код:Как добавить горизонтальную линию в ggvis?

library(dplyr, warn.conflicts = FALSE) 
library(ggvis) 
Boston %>% 
    ggvis(~chas, ~log(medv), fill=~chas, opacity := 0.8) %>% 
    layer_boxplots(size := 10) 

так вот, это сюжет, и я хочу добавить среднюю линию. Это то, что я пробовал:

data_line = data.frame(
    x_rng = c(0,1), #this is the part that I couldn't figure out. 
    y_rng = c(3,3) 
) 
layer_lines(~x_rng, ~y_rng, data=data_line) #this is what I added to the code above. 

Это не привело к тому, что я хотел. Фактически, это дало мне ошибку.

## Error in new_prop.default(x, property, scale, offset, mult, env, event, : 
## Unknown input to prop: c(0, 1)c(3, 3) 
+0

О, я предполагаю, что я не видел черную линию на графике. Я добавил 'layer_lines (y = mean (log (medv)), stroke: =" red ")', затем он появился. Есть ли другой способ сделать это? – user1828605

ответ

1

Не можете ли вы добавить новый столбец среднего значения в рамку данных boston с помощью dplyr? mutate(boston, line=mean("what you want the mean of")

затем добавить %>% layer_paths(~x,~meanvalue,stroke:=black)

+0

Я продолжаю получать 'length (x) не равным 1'. Зачем? – user1828605

+0

Надеюсь, вы пробовали свой синтаксис и заставили его работать. Просто скажите, что среднее значение равно 3,5, я собираюсь угадать, что вы положили ~ 3.5 в противоположность ~ среднему значению, которое возвратило бы col of df, которое было всего лишь 3.5, повторяющееся. Вы пробовали свой код с одним из наборов данных с rStudio, что предоставление воспроизводимого примера очень помогло бы найти решение Удача –

+0

Да, я получил работу, через пару часов возиться. Извините, я забыл изменить статус ответа. – user1828605