gpt4 book ai didi

r - 绘制直方图,可视化每个观察的颜色映射到第二个变量

转载 作者:行者123 更新时间:2023-12-04 10:28:43 25 4
gpt4 key购买 nike

我正在寻找一种方法来显示 binwidth 等于 1 的值直方图( time2 ),我认为,并将每个观察值(“计数”)的颜色映射到第二个变量( diff ) .

enter image description here

df <- data.frame(person=seq(from=1, to=12, by=1),
time1=c(9, 9, 9, 8, 8, 8, 8, 7, 7, 6, 6, 5),
time2=c(9, 4, 3, 9, 6, 5, 4, 9, 3, 2, 1, 2))
df$diff <- df$time2-df$time1

我以前没有遇到过这样的情节,我不知道实现这一点的方法是 ggplot2 .有任何想法吗?这个玩具示例显示了在时间 1 和时间 2 测量的 12 个人的值分布。颜色映射到值从时间 1 到时间 2 的变化。我试图向非量化学生展示该组的平均值如何变化下降了 2.75,但从时间 1 到时间 2 的个人运动范围从增加 2 点到减少 6 点。平均而言,该组有所改善,但一个人保持不变,而两个人变得更糟。

最佳答案

这是一个使用 geom_tile() 的黑客解决方案.我敢肯定有人可以使用纯 dplyr/purr 重写数据操作代码。大多数工作是通过将每个图块映射到 x 和 y 坐标来执行的。

df_plot = df %>%
gather(time, value, time1:time2)

df_plot = df_plot %>%
split(df_plot$time) %>%
lapply(function(x) {x %>% group_by(value) %>% mutate(y=1:n())}) %>%
bind_rows() %>%
mutate(diff = factor(diff))

ggplot(df_plot) +
geom_tile(aes(x = value, y = y, fill = diff)) +
facet_wrap(~time) +
theme_classic() +
scale_fill_brewer(type = "seq", palette = 3) +
scale_x_continuous(breaks = 0:10) +
xlab("") + ylab("")

您可以捏造填充颜色以实现所需的输出。还需要捏造情节尺寸以确保您的瓷砖是正方形。

enter image description here

关于r - 绘制直方图,可视化每个观察的颜色映射到第二个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com