我有一个数据框,我想要使用形状,alpha和颜色可视化绘制数据 . 我已经在下面显示了数据框 . 我创建了Type和Shapetype列,以指定颜色和形状 . 这工作得很好 - 但我需要编辑图例,我无法想办法做到这一点 . 我有一个显示形状的传奇 .

Shapes

但我需要MS和MT的颜色显示为图例中的最后两行 .

Colours

这是数据:

Locus;Island;AR;Type;Shapetype
MS1;ST;4,6315;MS;NA
MS1;FG;3,9689;MS;NA
MS1;SN;3;MS;NA
MS2;ST;2;MS;NA
MS2;FG;2;MS;NA
MS2;SN;2;MS;NA
MS3;ST;7,5199;MS;NA
MS3;FG;5,5868;MS;NA
MS3;SN;3;MS;NA
MS4;ST;2,9947;MS;NA
MS4;FG;3;MS;NA
MS4;SN;2;MS;NA
MS5;ST;9,0726;MS;NA
MS5;FG;5,6759;MS;NA
MS5;SN;2,963;MS;NA
MS6;ST;6,5779;MS;NA
MS6;FG;5,6842;MS;NA
MS6;SN;2;MS;NA
MS7;ST;2;MS;NA
MS7;FG;1;MS;NA
MS7;SN;1;MS;NA
MS8;ST;3,97;MS;NA
MS8;FG;2,9032;MS;NA
MS8;SN;1;MS;NA
MS9;ST;2;MS;NA
MS9;FG;1,9977;MS;NA
MS9;SN;2;MS;NA
MS10;ST;3,9733;MS;NA
MS10;FG;3,9971;MS;NA
MS10;SN;2;MS;NA
MS11;ST;7,4172;MS;NA
MS11;FG;5,6471;MS;NA
MS11;SN;3;MS;NA
MS12;ST;2;MS;NA
MS12;FG;2;MS;NA
MS12;SN;2;MS;NA
MS13;ST;5,6135;MS;NA
MS13;FG;3;MS;NA
MS13;SN;2;MS;NA
MT;ST;12;MT;NA
MT;FG;3;MT;NA
MT;SN;2;MT;NA
TLR1LA;ST;3,68;TLR;TLR1LA
TLR1LA;FG;4,4;TLR;TLR1LA
TLR1LA;SN;1;TLR;TLR1LA
TLR1LB;ST;3,99;TLR;TLR1LB
TLR1LB;FG;5;TLR;TLR1LB
TLR1LB;SN;1;TLR;TLR1LB
TLR2A;ST;4,9;TLR;TLR2A
TLR2A;FG;5;TLR;TLR2A
TLR2A;SN;2;TLR;TLR2A
TLR2B;ST;5,64;TLR;TLR2B
TLR2B;FG;4;TLR;TLR2B
TLR2B;SN;3;TLR;TLR2B
TLR3;ST;1;TLR;TLR3
TLR3;FG;3;TLR;TLR3
TLR3;SN;3;TLR;TLR3
TLR4;ST;1;TLR;TLR4
TLR4;FG;2,89;TLR;TLR4
TLR4;SN;2;TLR;TLR4
TLR5;ST;2,9;TLR;TLR5
TLR5;FG;2;TLR;TLR5
TLR5;SN;2;TLR;TLR5
TLR21;ST;2,91;TLR;TLR21
TLR21;FG;1;TLR;TLR21
TLR21;SN;1;TLR;TLR21

有了这个,我创建了一个非常接近我想要的情节:

ggplot(comb, aes(Island, AR, group = Locus, colour = (factor(Type)))) + geom_line(aes(colour = factor(Type), alpha = factor(Type), size = factor(Type))) + scale_alpha_manual(values = c("MS"=0.2, "MT"=0.2, "TLR" = 1)) + scale_size_manual(values = c("MS"=0.5, "MT"=0.5, "TLR" = 0.3)) + xlab("Island") + ylab("Allelic Richness") + scale_x_discrete(labels = c("Santiago", "Fogo", "Sao Nicolau"), limits = c("ST", "FG", "SN")) + geom_point(aes(shape = (factor(Shapetype)))) + scale_shape_manual(values = c(1,2,3,4,5,6,7,8,9,10), breaks=c("TLR1LA","TLR1LB","TLR2A","TLR2B","TLR3","TLR4","TLR5","TLR21", "MS", "MT")) + scale_colour_manual(values = c("Red","Blue","Black"), breaks=c("TLR1LA","TLR1LB","TLR2A","TLR2B","TLR3","TLR4","TLR5","TLR21", "MS", "MT")) + theme_bw()

但是,我现在有三个传说,我只想要一个(如上所述) . 首先,应该删除alpha-legend - 我已尝试使用 guide=FALSE+ guides(alpha=FALSE) ,但我无法让它们工作 . 其次,我需要一个传奇,即形状图例和两个额外的行 . 一个用于MS的颜色,一个用于MT的颜色 . (最好在中间没有点,只有彩色线条) . 我试图通过改变我的 scale_shape_manual 和_2566115来获得这个,但我没有运气 . 我也试过制作相同的标签来删除一个传奇,但我也没有运气 .