ggvis彩色线图和相应的图例

时间:2016-06-10 13:53:32

标签: r plot legend ggvis

我正在通过设置stroke和strokeDash参数来绘制具有不同颜色和线型的ggvis图。 颜色没有显示我想要的东西,例如:我需要“红色”,“蓝色”和“绿色”颜色,其中显示的颜色是“蓝色”,“橙色”和“绿色”。(代码示例和屏幕截图是下文)。

我还需要根据颜色和线型添加图例。我无法添加结合“颜色类型”(笔画)和“线型”(strokeDash)的图例。

以下是我正在使用的示例代码。

mydf <- data.frame(xval = c(1:5),USA = c(11:15), Canada = c(21:25), UK = c(31:35))

mydf2 <- tidyr::gather(mydf, 'var', 'val', -xval)

mydf2$mycol <- c(rep("Red",5), rep("Blue",5), rep("Green",5))
mydf2$mydash <- c(rep(5,5), rep(-1,5), rep(10,5))

myggv2 <- mydf2 %>% ggvis(x = ~xval, y = ~val, stroke = ~mycol,      
strokeDash := ~mydash) %>% layer_points(size := 100) %>%
add_tooltip(function(d) { paste0("x:", d$xval, "<br>", "y:", d$val) }, "hover") %>% group_by(var) %>% 
layer_paths() %>% add_axis("x", title = "qtrs") %>% 
  add_axis("y", title = "MEV")%>% hide_legend("stroke")
myggv2

以下是图表的屏幕截图。Screenshot

由于

1 个答案:

答案 0 :(得分:0)

您可以使用scale_nominal更改离散变量的绘图和图例中的颜色。

在此方法中,您可以在绘图代码中映射图例中所需的变量,然后使用所选颜色更改默认颜色。我在此示例中使用var作为stroke变量。

mydf2 %>%
    ggvis(x = ~xval, y = ~val, stroke = ~var,      
          strokeDash := ~mydash) %>% 
    layer_points(size := 100) %>%
    add_tooltip(function(d) { paste0("x:", d$xval, "<br>", "y:", d$val) }, "hover") %>% 
    group_by(var) %>% 
    layer_paths() %>% 
    add_axis("x", title = "qtrs") %>% 
    add_axis("y", title = "MEV") %>%
    scale_nominal("stroke", label = "Country", range = unique(mydf2$mycol))

enter image description here

请注意,此时ggvis不支持strokeDash图例。请参阅this open github issue