我有一组数据结构如下:
names data behaviour timeOrder
(str) (float) (str) (int)
userName1 0.542 green 1
userName1 0.456 green 1
userName1 0.514 red 2
userName1 0.625 blue 3
userName2 0.465 blue 3
userName2 0.635 red 1
userName2 0.464 red 1
.....
每个用户在三个条件(行为b1 / 2/3)中都有一个数据集,这些条件在实验中以不同的顺序发生(3,1,2 / 2,3,1 ....)
我想为每个用户表示三个数据箱图的集合,以timeOrder告知的顺序显示,但是由它代表的行为着色
(x轴中的用户名,y轴上的boxplot)
我设法用条形图表示,并且表示如下所示的值,但我的方法不适用于数据集
这可能吗?目前我实现了打印与
分组的三个箱图 p <- plot_ly(usersDataFrames, x = ~userName, y = ~data, type = "box",color = ~behaviour) %>%
layout(boxmode = "group")
但不会手动管理颜色
感谢任何帮助,谢谢!
答案 0 :(得分:0)
一种可以接近所需输出的方法是在ggplot2
中使用 facets 并将timeOrder转换为系数,因此按顺序绘制。
使用scale_fill_manual()
,您可以定义用于填充箱图的颜色到您选择的任何颜色。在这种情况下,红色,绿色和蓝色。
以下内容将在一行中为每个用户创建一个facet网格。
ggplot(df, aes(x = factor(timeOrder), y = data, fill = behaviour)) +
geom_boxplot() +
facet_grid(.~names) +
scale_fill_manual(values = c("red", "green", "blue"))