将笔划(颜色)作为图例和线条旁边的移动图例标签

时间:2016-03-08 16:28:50

标签: r ggplot2 ggvis

我试图用ggvis制作类似于这个的情节

enter image description here

我遇到了两个问题。

首先,我尝试将线条描边颜色指定为图例形状,但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。

1 个答案:

答案 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"))