0

我向ggvis谷歌小组提出了这个问题,但我想我会在这里重新发布,以防任何没有看到这个问题的人有任何想法。

我试图在某种程度上复制下面的图表,尽管我意识到当前版本的 ggvis 可能无法完全复制:

http://next.mlssoccer.com/standings/weekly

以下是一些示例数据,它们构成了此类图表的子集:

   team1 matchno rank
1     OS       1    1
2     AX       1    3
3     OS       2    1
4     DU       1    2
5     OS       3    1
6     MP       1    2
7     AX       2    3
8     DU       2    4
9     AX       3    2
10    MP       2    2
11    DU       3    3
12    MP       3    1
13    AX       4    3
14    OS       4    1
15    DU       4    4
16    OS       5    1
17    MP       4    2
18    OS       6    1
19    DU       5    4
20    AX       5    3
21    MP       5    2
22    AX       6    3
23    MP       6    2
24    DU       6    4

以下是我在交互方面取得的进展:

  library(ggvis)
mydf  %>%
      ggvis(~matchno,~rank, stroke = ~team1) %>%
      layer_points(size := 50, size.hover := 200, fill = ~team1) %>%
      layer_lines(stroke.hover = ~team1, strokeWidth.hover := 4, strokeWidth := 2) %>%
      add_axis("x", title="Match number",  subdivide = 0, values = seq(1, 6, by = 1), format="####") %>%
      add_axis("y", title="Rank", subdivide = 0, values = seq(1, 4, by = 1), format='####') %>%
      scale_numeric("y", reverse=TRUE)

所以我的问题是:

1)如果另一条线悬停在上面,是否可以使其他线更加不透明?

2)如果将鼠标悬停在一条线上,然后将鼠标移到一个数据点上,则线粗/颜色的变化会退回到原始线的颜色和粗细。当该线上的一个点悬停在上面时,是否可以保持线更粗?

3)当线悬停时,是否可以增加点的大小?

我猜这些问题的答案可能与linked_brush,但在同一个情节中而不是在两个情节之间?

这是上面绘制的数据,橙色线悬停在上面并增加了厚度。当您当前将鼠标悬停在橙色数据点上时,此厚度会消失。此外,当悬停不同的线时,其他线不会褪色。

在此处输入图像描述


#data:

       mydf <-data.frame(
team1 =  c("OS", "AX", "OS", "DU", "OS", "MP", "AX", "DU", "AX", "MP", "DU", "MP", "AX", "OS", "DU", "OS", "MP", "OS", "DU", "AX", "MP", "AX", "MP", "DU"),
matchno = c(1, 1, 2, 1, 3, 1, 2, 2, 3, 2, 3, 3, 4, 4, 4, 5, 4, 6, 5, 5, 5, 6, 6, 6),
rank =  c(1, 3, 1, 2, 1, 2, 3, 4, 2, 2, 3, 1, 3, 1, 4, 1, 2, 1, 4, 3, 2, 3, 2, 4) )
4

0 回答 0