我正在通过设置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
由于
答案 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))
请注意,此时ggvis不支持strokeDash
图例。请参阅this open github issue。