我想绘制一个散点图,将我的数据框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)
这是我得到的情节:
是否可以再插入一个参数(如形状)并使用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"))
这是新图:
答案 0 :(得分:0)
这是itemtype
的最小演示:
mtcars
请注意,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
知道如何自动选择比例,也许它与开发相关?)。由于这个原因,我不得不隐藏传奇,但无论如何,点大小都会起作用。