我试图用ggvis制作类似于这个的情节
我遇到了两个问题。
首先,我尝试将线条描边颜色指定为图例形状,但ggvis始终保持圆形。此外,它也不会识别虚线。
library(ggvis)
data <-data.frame(region=rep(c("A","B","C"),5),c=rep(seq(1980,2000,5),3), val=rnorm(15))
data %>%
group_by(region) %>%
ggvis(~c, ~val) %>%
layer_smooths(stroke=~region, strokeDash = ~region,strokeWidth := 3, strokeOpacity := 0.65) %>%
add_axis("y", title="y") %>%
add_axis("x", title="y", format=####) %>%
add_legend(c("stroke","strokeDash")) ## Adding this does not update the legend to recognize the line color or dashes.
有些人问here,但没有人回答。
最后,我想将每个区域的图例名称放在线条旁边,就像在第一个图形中一样。为此,我还没有发现如何开始。
感谢任何帮助。
更新:
我问过如何将x轴标签设为数字,答案是添加格式=&#34; ####&#34; to add_axis。
答案 0 :(得分:0)
我没有设法找到我需要的东西,但我找到了部分解决方案。请参阅代码中的注释。
data <-data.frame(region=rep(c("A","B","C"),5),c=rep(seq(1980,2000,5),3), val=rnorm(15))
data$region2 <- data$region ## create an additional region variable
data$region2 <- as.character(data$region2)
data$region2[data$c != 2000] <- "" ## Fill every year which is not the last year to be an empty character vector
data %>%
group_by(region) %>%
ggvis(~c, ~val) %>%
layer_smooths(stroke=~region, strokeDash = ~region,strokeWidth := 3, strokeOpacity := 0.65) %>%
layer_text(text := ~region2) %>% ## add this new region variable, which will only write over the last year.
add_axis("y", title="y") %>%
add_axis("x", title="y", format="####") %>%
hide_legend(c("stroke","strokeDash"))