ggvis 彩色折线图和相应的图例
Posted
技术标签:
【中文标题】ggvis 彩色折线图和相应的图例【英文标题】:ggvis color line graphs and corresponding legend 【发布时间】:2016-10-11 12:42:55 【问题描述】:我正在通过设置 stroke 和 strokeDash 参数来绘制具有不同颜色和线型的 ggvis 图形。 颜色没有显示我想要的,例如:我需要“红色”、“蓝色”和“绿色”颜色,其中显示的颜色是“蓝色”、“橙色”和“绿色”。(代码示例和屏幕截图是下面)。
我还需要根据颜色和线型添加图例。我无法添加结合“颜色类型”(笔划)和“线条类型”(笔划Dash)的图例。
下面是我正在工作的示例代码。
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
谢谢
【问题讨论】:
对于主要颜色问题,您只是缺少:=
来设置颜色而不是地图颜色。查看答案here。不过,如果我想要一个图例,我可能会将var
映射到笔划,然后使用scale_nominal
更改颜色。当前没有可用的strokeDash
图例。见here。
感谢@aosmith 的建议。你能写下相同的代码吗?我还是 ggvis 绘图的新手。
【参考方案1】:
您可以使用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。
【讨论】:
以上是关于ggvis 彩色折线图和相应的图例的主要内容,如果未能解决你的问题,请参考以下文章