gpt4 book ai didi

ggplot2 - 不使用 ggpaired 连接观察(点和线)

转载 作者:行者123 更新时间:2023-12-04 15:35:57 26 4
gpt4 key购买 nike

我使用 geom_bar 创建了一个条形图,x 轴(女性、男性)为“组”,y 轴为“值”。组进一步分割为“ session ”,因此男性和女性都有“ session 1”和“ session 2”(即总共四个小节)。

由于所有参与者都参加了第 1 次和第 2 次 session ,因此我在四个条形图的每一个上覆盖了一个点图 (geom_dot),以表示单个数据。

我现在试图将所有参与者的观察结果(“PID”)连接起来,在 session 1 和 session 2 之间。换句话说,应该有线连接 x 轴的“男性”部分上的几组两点(即每个参与者)和“女性部分”。

我用“geom_line”(下面)尝试了这个,但没有用(相反,它在“男性”中间创建了一条垂直线,在“女性”中间创建了另一条垂直线)。我不太确定如何解决这个问题。

见下面的代码:

ggplot(data_foo, aes(x=factor(Group),y=Values, colour = factor(Session), fill = factor(Session))) + 
geom_bar(stat = "summary", fun.y = "mean", position = "dodge") +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize = 1.0, position = "dodge", fill = "black") +
geom_line(aes(group = PID), colour="dark grey") +
labs(title='My Data',x='Group',y='Values') +
theme_light()

示例数据 (.txt)
data_foo <- readr::read_csv("PID,Group,Session,Values
P1,F,1,14
P2,F,1,13
P3,F,1,16
P4,M,1,18
P5,F,1,20
P6,M,1,27
P7,M,1,19
P8,M,1,11
P9,F,1,28
P10,F,1,20
P11,F,1,24
P12,M,1,10
P1,F,2,26
P2,F,2,21
P3,F,2,19
P4,M,2,13
P5,F,2,26
P6,M,2,15
P7,M,2,23
P8,M,2,23
P9,F,2,30
P10,F,2,21
P11,F,2,11
P12,M,2,19")

最佳答案

你遇到的麻烦是想被几组闪避 .您的 geom_line不知道怎么拆分Group变量 session .这里有两种方法可以解决这个问题。方法 1 可能是最“ggploty 方式”,并且是添加另一个分组而又不会使可视化过于拥挤的巧妙方法。对于方法 2,您需要更改 x 变量

1) 使用 facet
2) 使用 interaction为每个人拆分 session Group .为正确的柱线定单定义水平

我也用过 geom_point相反,因为 geom_dot更像是一种特定类型的直方图。
我一般会推荐 将箱线图用于此类图 像这样的值,因为条形更适合特定的度量,例如计数。

方法一 : 方面

library(ggplot2)
ggplot(data_foo, aes(x = Session, y = Values, fill = as.character(Session))) +
geom_bar(stat = "summary", fun.y = "mean", position = "dodge") +
geom_line(aes(group = PID)) +
geom_point(aes(group = PID), shape = 21, color = 'black') +
facet_wrap(~Group)



创建于 2020-01-20 由 reprex package (v0.3.0)

方法二 :在您的 x 变量中创建一个交互项。请注意,您需要手动对因子水平进行排序。

data_foo <- data_foo %>% mutate(new_x = factor(interaction(Group,Session), levels = c('F.1','F.2','M.1','M.2')))

ggplot(data_foo, aes(x = new_x, y = Values, fill = as.character(Session))) +
geom_bar(stat = "summary", fun.y = "mean", position = "dodge") +
geom_line(aes(group = PID)) +
geom_point(aes(group = PID), shape = 21, color = 'black')



创建于 2020-01-20 由 reprex package (v0.3.0)

但一切在视觉上都不是很引人注目。

关于ggplot2 - 不使用 ggpaired 连接观察(点和线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59741802/

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