R - plotly/ggplot2 - 在分组箱线图上动态更改颜色

卢普

我有一组数据结构如下:

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 轴为箱线图)

我设法使用条形图和平均值来做到这一点,如下所示,但我的方法不适用于数据集

与条形图相同的原理

这有可能吗?目前我实现了打印三个分组的箱线图

  p <- plot_ly(usersDataFrames, x = ~userName, y = ~data, type = "box",color = ~behaviour) %>%
      layout(boxmode = "group")

但颜色不是手动管理的

任何帮助表示赞赏,谢谢!

胡安·博斯科

你可以得到接近所需输出的方法是使用方面ggplot2和转化timeOrder到的一个因素,所以它才能绘制。

随着scale_fill_manual()您可以定义填充箱图给你选择的任何颜色。在这种情况下,红色、绿色和蓝色。

下面将在一行中创建一个分面网格,每个用户一个。

ggplot(df, aes(x = factor(timeOrder), y = data, fill = behaviour)) +
  geom_boxplot() +
  facet_grid(.~names) +
  scale_fill_manual(values = c("red", "green", "blue"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章