gpt4 book ai didi

r - 用不同的线型连接ggplot2中的点

转载 作者:行者123 更新时间:2023-12-01 02:00:53 24 4
gpt4 key购买 nike

“a”是一个数据框。

set.seed(2)
a<-data.frame(group= rep(c("A","B","C"),each=4),factor=rep(c(1,1,2,2),3),
model=rep(c("old","new"),6),mean=runif(12),sd=runif(12)/10)

>a
group factor model mean sd
1 A 1 old 0.1848823 0.076051331
2 A 1 new 0.7023740 0.018082010
3 A 2 old 0.5733263 0.040528218
4 A 2 new 0.1680519 0.085354845
5 B 1 old 0.9438393 0.097639849
6 B 1 new 0.9434750 0.022582546
7 B 2 old 0.1291590 0.044480923
8 B 2 new 0.8334488 0.007497942
9 C 1 old 0.4680185 0.066189876
10 C 1 new 0.5499837 0.038754954
11 C 2 old 0.5526741 0.083688918
12 C 2 new 0.2388948 0.015050144

我想用 ggplot2 绘制一个“均值±标准差”折线图。
我的目的是画图(x轴是“组”,y轴是“平均值±sd”,不同的“因子”应该有不同的颜色,不同的“模型”应该有不同的连接线类型(旧模型是虚线线,新型号为实线))

我使用以下代码:
library("ggplot2")
pd <- position_dodge(0.1) #The errorbars overlapped, so use position_dodge to move
#them horizontally
plot<-ggplot(a, aes(x=group, y=mean, colour=as.factor(factor), linetype=model)) +
geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), width=.1, position=pd) +
geom_point(position=pd, size=3, shape=21, fill="white") + # 21 is filled circle
xlab("Groups") +
ylab("Power") +
geom_line(position=pd) +
scale_linetype_manual(values = c(new = "solid", old = "dashed"))

enter image description here

但“均值±标准差”应全部为实线,并添加点之间的连接。其实我希望它是这样的:

enter image description here
能不能给点建议,谢谢!

最佳答案

我建议添加一个新的分组变量:

a$group2 <- paste(a$factor, a$model, sep="_")

然后删除 linetype来自 ggplot()并修改 geom_line() :
    ggplot(a, aes(x = group, y = mean, colour = as.factor(factor))) + 
geom_errorbar(aes(ymin = mean-sd, ymax = mean+sd),
width = .1, position = pd) +
geom_point(position = pd, size = 3, shape = 21, fill = "white") +
xlab("Groups") +
ylab("Power") +
geom_line(aes(x = group, y = mean, colour = as.factor(factor),
group = group2, linetype = model)) +
scale_linetype_manual(values = c(new = "solid", old = "dashed"))

enter image description here

关于r - 用不同的线型连接ggplot2中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631834/

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