刚开始使用ggvis
。我并不害怕,这不是一个特别有趣或一般的问题,但对我来说,如何向一行添加size
属性并不明显。特别是,我如何使用ggvis
?
library(ggplot2)
df <- data.frame(
id = c(1,1,1,2,2,2,2),
x = c(1,2,3,1,2,3,4),
y = c(2,3,4,1,1,2,3)
)
ggplot(df, aes(x, y, colour = as.factor(id), size = id)) +
geom_line()
此外,声誉过高的人可以创建ggvis
代码吗?欢呼声。
答案 0 :(得分:4)
以下内容:
library(ggvis)
gg <- ggvis(df, props(~x, ~y, stroke = ~factor(id)))
gg <- gg + layer_line(props(strokeWidth := ~id*4))
gg
产生
我不得不调整strokeWidth
的乘数来使它更厚一点,但这应该是一个很好的起点。请记住ggivs
基于Vega,因此熟悉新图形语法中的术语几乎是了解如何在{{1中“思考”的要求}}
以下是更恰当地执行此操作的示例(以及更多ggvis
- 与ggplot2
类似:
scale_quantitative
执行gg <- ggvis(df, props(~x, ~y, stroke = ~factor(id)))
gg <- gg + layer_line(props(strokeWidth = ~id))
gg <- gg + scale_quantitative("strokeWidth",
trans="linear",
domain=range(df$id),
range=c(1,10))
gg
或查看"scales" online examples应该会让您了解获得所需效果的选项。
我还应该指出在第二个例子中使用“?scale_quantitative
”vs“=
”。来自:=
网站:
props()函数使用=操作进行映射(缩放),使用:=运算符进行设置(未缩放)。它还使用〜运算符来指示应该在数据中计算表达式(并且在ggvis中,数据可以更改);如果没有〜运算符,则会在当前环境中立即计算表达式。