【问题标题】:How can I add a horizontal line in ggvis?如何在 ggvis 中添加水平线?
【发布时间】:2023-03-27 22:35:01
【问题描述】:

我正在尝试学习 ggvis,并且正在波士顿作为教程工作。基本上,我正在尝试将我处理的 ggplot 转换为 R 中波士顿数据的 ggvis。似乎我无法在 ggvis 中添加水平平均线。虽然我在谷歌搜索后发现了一些 hack,但我仍然无法弄清楚如何在我的代码中解决它。这是我的代码:

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)

【问题讨论】:

  • 哦,我想我没看到剧情上的黑线。我添加了layer_lines(y=mean(log(medv)), stroke:= "red"),然后它就出现了。还有其他方法吗?

标签: r ggvis


【解决方案1】:

您不能使用 dplyr 将平均值的新列添加到 boston 数据框中吗? mutate(boston, line=mean("what you want the mean of")

然后添加%>% layer_paths(~x,~meanvalue,stroke:=black)

【讨论】:

  • 我不断收到length(x) not equal to 1。为什么?
  • 我希望你能摆弄你的语法并让它工作。只是说平均值是 3.5,我猜你输入 ~3.5 而不是 ~meanvalue 会返回 df 的 col,它只是 3.5 重复自己有没有用 rStudio 的数据集之一尝试过你的代码,它提供了一个可重现的例子将极大地帮助找到一个解决方案祝你好运
  • 是的,经过几个小时的摆弄,我确实让它工作了。抱歉,我忘记将状态更改为已回答。
猜你喜欢
  • 2018-01-10
  • 2021-02-09
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
相关资源
最近更新 更多