0

我正在尝试使用带有 2 个数据帧的 ggplot2 来创建一个函数。

第一个数据框:

head(DF1, 15) # with 280 rows

          SeqTech         S1          S2         C1         C2
AM.AD.1    Sanger -1.0436581 -0.37756924 -0.7685488 -0.0441722
AM.AD.2    Sanger -0.5714184 -0.60946292 -0.7685488 -0.0441722
AM.F10.T1  Sanger -0.6000866 -0.09649056 -0.7685488 -0.0441722
AM.F10.T2  Sanger -0.5232439 -0.25033653 -0.7685488 -0.0441722
DA.AD.1    Sanger -0.8911968 -0.16821038 -0.7685488 -0.0441722
DA.AD.1T   Sanger -0.9517195 -0.11437614 -0.7685488 -0.0441722
DA.AD.2    Sanger -0.8475660  0.17727014 -0.7685488 -0.0441722
DA.AD.3    Sanger -1.1066888  0.06575432 -0.7685488 -0.0441722
DA.AD.3T   Sanger -0.9968716  0.07856669 -0.7685488 -0.0441722
DA.AD.4    Sanger -1.0187115 -0.05531954 -0.7685488 -0.0441722
ES.AD.1    Sanger -0.2993661  0.57074665 -0.7685488 -0.0441722
ES.AD.2    Sanger -0.7723388 -0.28290136 -0.7685488 -0.0441722
ES.AD.3    Sanger -0.5537318 -0.13383022 -0.7685488 -0.0441722
ES.AD.4    Sanger -0.7448872  0.11534246 -0.7685488 -0.0441722
FR.AD.1    Sanger -0.6601532 -0.01037697 -0.7685488 -0.0441722

以及 SeqTech 栏目中的 3 个类别

unique(DF1$SeqTech)
[1] Sanger   Illumina Pyro454 
Levels: Illumina Pyro454 Sanger

第二个数据框是

DF2

   SeqTech      Cent1        Cent2
1 Illumina -0.7304342  0.031788410
2  Pyro454  0.6077754 -0.005785419
3   Sanger -0.7685488 -0.044172203

这是我的代码:

Category = "SeqTech"

#generate the points (sites: S1 and S2)
P <- ggplot(DF1, aes(x = S1, y = S2)) + 
    geom_vline(xintercept = 0, linetype="dashed", size = 0.25, color= "#999999") + 
    geom_hline(yintercept = 0, linetype="dashed", size = 0.25, color= "#999999") +
    geom_point(size = 2, alpha=0.7, aes_string(color= Category, shape=Category))

现在添加使用 DF1 将每个点与平均点连接的线:C1 和 C2

P <- P + geom_segment(data = DF1, aes(xend = C1, yend = C2, colour=DF1[, Category]), alpha=0.7, linetype="dashed")

现在我将使用数据框 DF2 为代表平均值的每个类别添加一个点

P <- P + geom_point(data = DF2, x=DF2[,"Cent1"], y=DF2[,"Cent2"], size = 1.5, alpha= 0.9, shape= 21, aes_string(color=Category), fill="black")

这是获得的情节:

在此处输入图像描述

所以我的问题是,我想添加第二个图例,我的意思是第一个图中的图例所有元素都重叠在一个图例中,我想要第一个图例直到: geom_segment(data = DF1, aes(xend = C1 ,yend = C2.......和第二个图例使用从数据框 DF2 获得的数据,在一秒钟内有一个点,图例像“ o Centroid ”:

在此处输入图像描述

对不起图片,已编辑!!!!

有什么建议吗??

非常感谢 !!!!

4

0 回答 0