具有R ggvis包的多维数据帧散点图

时间:2015-06-25 10:15:44

标签: r legend ggvis

我想绘制一个散点图,将我的数据框df的多个列组合在一起。数据框如下所示:

             x            y         a      b      c          d     e  f
1 1.882665e-09 1.324425e-09 0.7034844    160      g       Loc1  0.25 30
2 7.173770e-09 4.830280e-09 0.6733253    160      g       Loc2  0.25 30

我编写的代码允许我绘制df $ x vs df $ y,为点的颜色引入互补变量f(我有3个等级的f)。

这是代码(日志轴有一些额外的行):

data %>% ggvis(~x, ~y) %>%
+     layer_points(fill = ~factor(f)) %>%
+     scale_numeric("x", trans = "log", expand=0) %>%
+     scale_numeric("y", trans = "log", expand=0)

这是我得到的情节: My scatterplot

是否可以再插入一个参数(如形状)并使用df的另一列作为因子(例如b列)?如果是,如何以正确的方式设置图例?

----------------------------------------------- -----------

一些问题的进展。

我设法描绘了我想要的东西,但传说还不清楚。

这是新代码:

data %>% ggvis(~x, ~y) %>%
+     layer_points(fill = ~factor(f), shape = ~factor(b)) %>%
+     scale_numeric("x", trans = "log", expand=0) %>%
+     scale_numeric("y", trans = "log", expand=0) %>%
+     add_axis("x", title = "blabla1") %>%
+     add_axis("y", title = "blabla2") %>%
+     add_legend(c("fill", "shape"))

这是新图:

plot2

1 个答案:

答案 0 :(得分:0)

这是itemtype的最小演示:

mtcars

enter image description here

请注意,library(ggvis) mtcars %>% ggvis(~mpg, ~wt) %>% layer_points(fill = ~factor(cyl), shape = ~factor(cyl), stroke = ~factor(cyl), size = ~factor(cyl)) %>% scale_nominal("size", range = c(10, 50)) %>% hide_legend("size") 需要一些特殊处理,但不确定原因(例如size知道如何自动选择比例,也许它与开发相关?)。由于这个原因,我不得不隐藏传奇,但无论如何,点大小都会起作用。