R-ggvis-如何标记多个平滑数据组
我有一个包含时间和键值对的数据帧,我想按键分组,然后为每个数据组显示一条平滑的线。然后我想用键来标记它。我可以做的一切,但得到的标签的基础上的关键。我看不出在文档中的什么地方可以设置这个 资料 结果 代码R-ggvis-如何标记多个平滑数据组,r,statistics,ggvis,R,Statistics,Ggvis,我有一个包含时间和键值对的数据帧,我想按键分组,然后为每个数据组显示一条平滑的线。然后我想用键来标记它。我可以做的一切,但得到的标签的基础上的关键。我看不出在文档中的什么地方可以设置这个 资料 结果 代码 您可以尝试将stroke参数添加到layer\u smooths中,该参数将根据您的分组对其进行着色,并添加图例: df %>% ggvis(~time, ~newval) %>% group_by(newcol) %>% layer_smooths(s
您可以尝试将
stroke
参数添加到layer\u smooths
中,该参数将根据您的分组对其进行着色,并添加图例:
df %>% ggvis(~time, ~newval) %>%
group_by(newcol) %>%
layer_smooths(stroke=~newcol) %>%
add_axis("x", properties = axis_props(
axis = list(stroke = "black", strokeWidth = 2),
grid = list(stroke = "black"),
ticks = list(stroke = "black", strokeWidth = 2),
labels = list(angle = 45, align = "left", fontSize = 10)
))
产生:
如果您确实希望标记每一行,则可以使用文本标签创建一个小数据框,并将其作为附加的层\文本进行渲染
label_df <- df %>% group_by(newcol) %>% sample_n(1)
df %>% ggvis(~time, ~newval) %>%
group_by(newcol) %>%
layer_smooths(stroke=~newcol) %>%
layer_text(data=label_df,
text:=~newcol,
baseline:="middle", fontSize:=8) %>%
add_axis("x", properties = axis_props(
axis = list(stroke = "black", strokeWidth = 2),
grid = list(stroke = "black"),
ticks = list(stroke = "black", strokeWidth = 2),
labels = list(angle = 45, align = "left", fontSize = 10)
))
label\u df%group\u by(newcol)%%>%sample\n(1)
df%>%ggvis(~time,~newval)%>%
分组依据(新列)%>%
图层平滑(笔划=~newcol)%>%
图层文字(数据=标签),
文本:=~newcol,
基线:=“中等”,字体大小:=8)%>%
添加轴(“x”,属性=轴道具(
轴=列表(笔划=“黑色”,笔划宽度=2),
网格=列表(笔划=“黑色”),
刻度=列表(笔划=“黑色”,笔划宽度=2),
标签=列表(角度=45,align=“left”,字体大小=10)
))
请发布您的示例数据,我们无法对屏幕截图执行任何操作。您可以在此处获取dput()的输出无法打开那里的内容,您是否尝试过layer_text()
?在mac上以升华文本打开没有问题-或者使用任何文本编辑器打开。现在查看图层文本。
df %>% ggvis(~time, ~newval) %>%
group_by(newcol) %>%
layer_smooths(stroke=~newcol) %>%
add_axis("x", properties = axis_props(
axis = list(stroke = "black", strokeWidth = 2),
grid = list(stroke = "black"),
ticks = list(stroke = "black", strokeWidth = 2),
labels = list(angle = 45, align = "left", fontSize = 10)
))
label_df <- df %>% group_by(newcol) %>% sample_n(1)
df %>% ggvis(~time, ~newval) %>%
group_by(newcol) %>%
layer_smooths(stroke=~newcol) %>%
layer_text(data=label_df,
text:=~newcol,
baseline:="middle", fontSize:=8) %>%
add_axis("x", properties = axis_props(
axis = list(stroke = "black", strokeWidth = 2),
grid = list(stroke = "black"),
ticks = list(stroke = "black", strokeWidth = 2),
labels = list(angle = 45, align = "left", fontSize = 10)
))