I am having trouble adding grouping variable ellipses on top of an individual site PCA factor plot which also includes PCA variable factor arrows.
My code:
prin_comp<-rda(data[,2:9], scale=TRUE)
pca_scores<-scores(prin_comp)
#sites=individual site PC1 & PC2 scores, Waterbody=Row Grouping Variable.
#site scores in the PCA plot are stratified by Waterbody type.
plot(pca_scores$sites[,1],
pca_scores$sites[,2],
pch=21,
bg=point_colors[data$Waterbody],
xlim=c(-2,2),
ylim=c(-2,2),
xlab=x_axis_text,
ylab=y_axis_text)
#species=column PCA1 & PCA2 Response variables
arrows(0,0,pca_scores$species[,1],pca_scores$species[,2],lwd=1,length=0.2)
#I want to draw 'Waterbody' Grouping Variable ellipses that encompass completely,
# their appropriate individual site scores (this is to visualise total error/variance).
I have attempted to use both dataellipse, plotellipses & ellipse functions but to no avail. Ignorance is winning out on this one. If I have not supplied enough info please let me know.
Data (log10 transformed):
dput(data)
structure(list(Waterbody = structure(c(4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Ditch", "Garden Pond",
"Peri-Urban Ponds", "River", "Stream"), class = "factor"), Catchment_Size = c(9.73045926,
9.73045926, 9.73045926, 9.73045926, 9.73045926, 9.73045926, 9.73045926,
9.73045926, 9.73045926, 9.73045926, 9.73045926, 9.73045926, 9.73045926,
9.73045926, 9.73045926, 9.73045926, 9.73045926, 9.73045926, 9.73045926,
9.73045926, 8.602059991, 8.602059991, 8.602059991, 8.602059991,
8.602059991, 8.602059991, 8.602059991, 8.602059991, 8.602059991,
8.602059991, 8.602059991, 8.602059991, 8.602059991, 8.602059991,
8.602059991, 8.602059991, 8.602059991, 8.602059991, 8.602059991,
8.602059991, 5.230525555, 5.271197816, 5.310342762, 5.674064357,
5.745077916, 5.733059168, 5.90789752, 5.969640923, 0, 0, 0.419955748,
0, 0.079181246, 0, 0.274157849, 0, 0.301029996, 1, 0.62838893,
0.243038049, 0, 0, 0, 1.183269844, 0, 1.105510185, 0, 0.698970004,
2, 1.079181246, 2.954242509, 1.84509804, 1.477121255, 2.477121255,
3.662757832, 1.397940009, 1.84509804, 0), pH = c(0.888740961,
0.891537458, 0.890421019, 0.904715545, 0.886490725, 0.88592634,
0.892651034, 0.891537458, 0.895422546, 0.8876173, 0.881384657,
0.888179494, 0.876794976, 0.898725182, 0.894316063, 0.882524538,
0.881384657, 0.916980047, 0.890979597, 0.886490725, 0.88592634,
0.903089987, 0.889301703, 0.897627091, 0.896526217, 0.890979597,
0.927370363, 0.904174368, 0.907948522, 0.890979597, 0.910090546,
0.892094603, 0.896526217, 0.891537458, 0.894869657, 0.894316063,
0.898725182, 0.914343157, 0.923244019, 0.905256049, 0.870988814,
0.868644438, 0.872156273, 0.874481818, 0.88422877, 0.876217841,
0.874481818, 0.8876173, 0.859138297, 0.887054378, 0.856124444,
0.856124444, 0.860936621, 0.903089987, 0.860338007, 0.8876173,
0.860338007, 0.906335042, 0.922206277, 0.851869601, 0.862131379,
0.868056362, 0.869818208, 0.861534411, 0.875061263, 0.852479994,
0.868644438, 0.898725182, 0.870403905, 0.88422877, 0.867467488,
0.905256049, 0.88536122, 0.8876173, 0.876794976, 0.914871818,
0.899820502, 0.946943271), Conductivity = c(2.818885415, 2.824125834,
2.824776462, 2.829303773, 2.824125834, 2.82672252, 2.829303773,
2.82672252, 2.824776462, 2.829946696, 2.846337112, 2.862727528,
2.845718018, 2.848804701, 2.86923172, 2.85308953, 2.867467488,
2.847572659, 2.86569606, 2.849419414, 2.504606771, 2.506775537,
2.691346764, 2.628797486, 2.505963518, 2.48756256, 2.501470072,
2.488973525, 2.457124626, 2.778295991, 2.237040791, 2.429267666,
2.3287872, 2.461198289, 2.384174139, 2.386320574, 2.410608543,
2.404320467, 2.426836454, 2.448397103, 2.768704683, 2.76718556,
2.771602178, 2.775289978, 2.90579588, 2.909020854, 3.007747778,
3.017867719, 2.287129621, 2.099680641, 2.169674434, 1.980457892,
2.741781696, 2.597804842, 2.607669437, 2.419129308, 2.786751422,
2.639884742, 2.19893187, 2.683497318, 2.585235063, 2.393048466,
2.562411833, 2.785329835, 2.726808683, 2.824776462, 2.699056855,
2.585122186, 2.84260924, 2.94792362, 2.877371346, 2.352568386,
2.202760687, 2.819543936, 2.822168079, 2.426348574, 2.495683068,
2.731266349), NO3 = c(1.366236124, 1.366236124, 1.376029182,
1.385606274, 1.376029182, 1.385606274, 1.385606274, 1.385606274,
1.376029182, 1.385606274, 1.458637849, 1.489114369, 1.482158695,
1.496098992, 1.502290528, 1.50174373, 1.500785173, 1.499549626,
1.485721426, 1.490520309, 0.693726949, 0.693726949, 1.246005904,
1.159266331, 0.652246341, 0.652246341, 0.883093359, 0.85672889,
0.828659897, 1.131297797, 0.555094449, 0.85672889, 0.731588765,
0.883093359, 0.731588765, 0.731588765, 0.693726949, 0.693726949,
0.693726949, 0.693726949, 1.278524965, 1.210853365, 1.318480725,
1.308777774, 1.404833717, 1.412796429, 0, 0, 0, 0, 0, 0, 1.204391332,
0, 0, 0, 0.804820679, 0, 0, 0.021189299, 0, 0, 0.012837225, 0,
0, 0, 0, 0.539076099, 0, 0, 1.619406411, 0, 0, 1.380753771, 0,
0, 0, 0.931966115), NH4 = c(0.14, 0.14, 0.18, 0.19, 0.2, 0.2,
0.15, 0.14, 0.11, 0.11, 0.04, 0.06, 0.04, 0.03, 0.07, 0.03, 0.03,
0.04, 0.04, 0.03, 0.01, 0, 0, 0.01, 0.02, 0.02, 0.05, 0.03, 0.04,
0.02, 0.21, 0.19, 0.2, 0.1, 0.05, 0.05, 0.08, 0.11, 0.04, 0.04,
0.15, 2.03, 0.14, 0.09, 0.05, 0.04, 2.82, 3.18, 0.06, 0.12, 2.06,
0.1, 0.14, 0.06, 1.06, 0.03, 0.04, 0.03, 0.03, 1.91, 0.2, 1.35,
0.69, 0.05, 0.17, 3.18, 0.21, 0.1, 0.03, 1.18, 0.01, 0.03, 0.02,
0.09, 0.14, 0.02, 0.07, 0.17), SRP = c(0.213348889, 0.221951667,
0.24776, 0.228833889, 0.232275, 0.249480556, 0.259803889, 0.244318889,
0.249480556, 0.240877778, 0.314861667, 0.292494444, 0.311420556,
0.306258889, 0.285612222, 0.323464444, 0.316582222, 0.34067,
0.285612222, 0.321743889, 0.074328, 0.074328, 0.120783, 0.133171,
0.0820705, 0.080522, 0.0789735, 0.0820705, 0.080522, 0.0913615,
0.136268, 0.1656895, 0.1223315, 0.130074, 0.1192345, 0.1285255,
0.1873685, 0.167238, 0.15485, 0.157947, 0.1378165, 0.1966595,
0.198208, 0.241566, 0.037164, 0.0325185, 0.455259, 0.560557,
0.07987, 0.02119, 0.02119, 0.03912, 0.36349, 0.40098, 0.04401,
0.07172, 0.15322, 0.92421, 0.02282, 0.17604, 0.17767, 0.66667,
0.28688, 0.03586, 0.17278, 0.07661, 0.10432, 1.12959, 0.0170335,
0.0975555, 0.009291, 0.0263245, 0.037164, 0.2214355, 0.0449065,
0.068134, 0.09291, 0.545072), Zn = c(0.802630077, 1.172124009,
0.891565332, 0.600253919, 0.583912562, 0.962473516, 0.99881711,
0.709787074, 1.139860204, 0.953730706, 0.945832806, 0.906270378,
0.81663232, 0.912514323, 0.935073763, 1.032328597, 1.357197063,
1.070662063, 0.51200361, 0.987514325, 1.433709044, 1.380974206,
1.143661074, 0.999774108, 1.449654241, 1.366165106, 1.014239038,
0.891258617, 0.703978825, 1.086487964, 1.503432481, 1.243241499,
0.890504851, 0.291391053, 0, 0.802855789, 0.776316103, 0.927421695,
0.421505212, 0.952099537, 0.688802331, 0.852504392, 0.773545103,
1.006581553, 1.028229538, 0.880619259, 0.833408503, 1.038608242,
1.107084413, 0.973967909, 2.135781222, 1.819197019, 1.629353525,
1.163194184, 1.343286462, 1.273614642, 1.92374902, 1.70523233,
1.377623112, 1.119971423, 1.461175762, 1.691856516, 1.661826878,
1.104531494, 1.449455257, 1.092376721, 1.519029523, 1.553407226,
1.52652924, 1.332876573, 1.293079563, 0.996734891, 1.590475126,
1.525755949, 1.180418366, 0.712624451, 0.6739512, 0.585043155
), Mn = c(0.817367016, 0.799340549, 1.023910606, 1.012921546,
0.821579028, 1.321888278, 1.115077717, 1.02031984, 1.135482491,
1.073645046, 1.016866271, 1.052809328, 0.818423855, 0.836387419,
1.151032582, 0.720490068, 1.03746634, 1.072580733, 1.041590047,
0.979548375, 1.073168262, 1.134336511, 0.916137983, 0.641374945,
1.083753378, 0.84441504, 0.547159121, 0.144262774, 1.084826417,
0.674861141, 0.478566496, 1.211654401, 1.095518042, 0.387033701,
0.647480773, 0.775828814, 0.533899101, 0.854548936, 0.755188586,
0.714497409, 0.851808514, 0.390051496, 0.832508913, 1.222482357,
1.477048866, 1.475147977, 2.127826941, 2.132205239, 1.639576128,
1.155578931, 2.203783274, 1.148448404, 1.644586284, 1.122609024,
1.577319427, 1.633417953, 1.583901241, 1.215478936, 1.135418905,
1.612847407, 1.95593777, 1.783639208, 1.567837703, 2.251767151,
0.992155711, 1.738923187, 0.681964459, 0.852845818, 1.77749932,
2.465019796, 0.887729797, 0.610447221, 1.777760209, 1.034588354,
0.303196057, 1.793371249, 1.677734668, 1.802157753)), .Names = c("Waterbody",
"Catchment_Size", "pH", "Conductivity", "NO3", "NH4", "SRP",
"Zn", "Mn"), class = "data.frame", row.names = c("1_1", "1_2",
"1_3", "1_4", "1_5", "1_6", "1_7", "1_8", "1_9", "1_10", "1_11",
"1_12", "1_13", "1_14", "1_15", "1_16", "1_17", "1_18", "1_19",
"1_20", "2_1", "2_2", "2_3", "2_4", "2_5", "2_6", "2_7", "2_8",
"2_9", "2_10", "2_11", "2_12", "2_13", "2_14", "2_15", "2_16",
"2_17", "2_18", "2_19", "2_20", "3_1", "3_2", "3_3", "3_4", "3_5",
"3_6", "3_7", "3_8", "4_1", "4_2", "4_3", "4_4", "4_5", "4_6",
"4_7", "4_8", "4_9", "4_10", "4_11", "4_12", "4_13", "4_14",
"4_15", "4_16", "4_17", "4_18", "4_19", "4_20", "5_1", "5_2",
"5_3", "5_4", "5_5", "5_6", "5_7", "5_8", "5_9", "5_10"))
Since you do not mention this in your question, I will assume that the package you used is
vegan
, since it has the functionrda()
that accepts thescale=TRUE
argument.Your initial
plot()
call was modified as some of variables are not given.To make ellipses, function
ordiellipse()
of packagevegan
is used. As arguments PCA analysis object and grouping variable must be provided. To control number of points included in ellipse, argumentconf=
can be used.Here's a
ggplot
solution, using the niceggbiplot
library. An obvious improvement overplot
are the labels on this one.