绘制 NMDS 连续变量无法映射到形状 ggplot2 但组变量似乎是字符
Plotting NMDS A continuous variable can not be mapped to shape ggplot2 but group variable seems to be character
我正在尝试使用我在网上找到的示例绘制 NMDS 结果。当我绘制我的组变量('S' 和 'E')时,我得到“'scale_f()' 中的错误:连续变量无法映射到形状。我尝试使用不同的组(月),我继续得到同样的错误。
library(ggplot2)
library(vegan)
library(dplyr)
用于 NMDS 的数据(很抱歉这太长了):
structure(list(d.lept = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.014625576, 0, 0, 0, 0.008037479, 0.155240934,
0.089817793, 0.160428397, 0.55430068, 0.170641857, 0.081105468,
0.110965192, 0.119195485, 0.389720492, 0.128494423, 0.025249815,
0.053921767, 0.012391113, 0.065359717, 0.084967633, 0, 0, 0,
0, 0.059956999, 0.05310477, 0.027149068, 0, 0.174208785, 0.124913669,
0.032951436, 0.218108878, 0.01964149, 0.051629638, 0.064649286,
0.060485433, 0, 0.043224813, 0.057558719, 0.069338871, 0.022259485,
0.013767903, 0.046661095, 0, 0.105882742, 0.104713632, 0.008348348,
0.094709145, 0, 0.017608424, 0.014949064, 0.026937202, 0.037461505,
0.041380341, 0.023943191, 0, 0.041659777, 0.091036749, 0, 0.177957475,
0.140571451, 0.075287776, 0.049019788, 0.063363647, 0.083140372,
0.157582634, 0.021133531, 0.178249209, 0.049649323, 0.049762937,
0.071948399, 0.204249117, 0, 0.039129831, 0.0312381, 0, 0.079657156,
0.209427264, 0.110415859), d.byths = c(0, 0, 0, 0, 0, 0, 0.037173339,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.007392425,
0.017963559, 0.011883585, 0.021996059, 0, 0, 0, 0, 0.005567436,
0, 0, 0, 0, 0, 0, 0.069700011, 0, 0.01498925, 0.028928669, 0.029978499,
0, 0, 0, 0.002639527, 0.004570012, 0.002745953, 0.001896599,
0, 0, 0, 0, 0, 0, 0, 0, 0.044518969, 0.013767903, 0.015553698,
0.009860302, 0, 0.041885453, 0, 0.023677286, 0.071145147, 0,
0, 0, 0, 0, 0, 0, 0.020829888, 0, 0, 0, 0, 0.037643888, 0, 0.063363647,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.022083172), d.daph = c(0.140036552,
1.010093452, 1.629907953, 2.762608821, 2.357448478, 1.454608928,
0.278800045, 0.346222278, 2.703515584, 0.805822064, 1.450666899,
4.348343553, 12.42577355, 3.294403721, 2.503983769, 2.508770817,
0.706293446, 1.111704253, 0.819032262, 0.655258862, 1.130338642,
1.311853781, 0.031419235, 0.029569702, 0.002245445, 0.029708962,
0.017596847, 0.022257633, 0.770501941, 0.510439883, 0.021671906,
0.100213841, 0.0525659, 0.084166051, 0.024509894, 0.049564452,
0.049019788, 0.651418517, 1.81220029, 0.37720006, 0.344752743,
0.216965015, 0.389720492, 0.424838163, 0.13574534, 0.12265315,
0.010558108, 0.003046675, 0, 0.003793198, 0.039282981, 0, 0,
0, 0.015234975, 0.010806203, 0.134303677, 0.104008307, 0.133556908,
0.082607421, 0.062214794, 0.009860302, 0, 0.041885453, 0, 0.071031858,
0.071145147, 0.070433695, 0.07474532, 0.134686012, 0.299692038,
0.206901703, 0.095772765, 0.108535297, 0.020829888, 0.273110248,
0.261375042, 0.533872426, 0.04685715, 0.075287776, 0, 0, 0, 0,
0, 0.118832806, 0, 0.033175291, 0.0239828, 0.081699647, 0.210273434,
0, 0.093714301, 0.04998096, 0.079657156, 0.041885453, 0.066249516
), d.diaph = c(0, 0, 0.014297438, 0, 0, 0, 0, 0, 0, 0, 0, 0.099961921,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.002245445, 0.005941792,
0, 0, 0, 0.022193038, 0.003611984, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.002639527, 0.001523337, 0.002745953, 0, 0.039282981,
0.129074095, 0.064649286, 0.020161811, 0, 0.010806203, 0, 0,
0, 0, 0, 0, 0.023529498, 0, 0.008348348, 0.047354572, 0.035572573,
0, 0, 0, 0.037461505, 0, 0, 0, 0.041659777, 0, 0, 0.059319158,
0.04685715, 0.037643888, 0.032679859, 0.09504547, 0.020785093,
0.031516527, 0.042267062, 0.059416403, 0.024824662, 0.049762937,
0.047965599, 0, 0.030039062, 0.078259662, 0.124952401, 0.549790564,
0.238971467, 0.041885453, 0), d.bosm = c(1.043908843, 1.923987528,
1.629907953, 2.356342818, 5.51953506, 5.712645973, 2.156053678,
1.968000315, 4.81225774, 3.885213525, 4.442667377, 11.54560185,
3.483375849, 3.383441659, 2.17939328, 2.989904947, 1.56128025,
1.908775227, 4.036659007, 2.293406017, 4.386790445, 6.982447546,
0, 0, 0.00449089, 0, 0, 0.003709606, 0.040552734, 0, 0.007223969,
0, 0.029203278, 0.042083026, 0.024509894, 0.068151122, 0.016339929,
0.424838163, 1.045500167, 0.295200047, 0.029978499, 0.072321672,
0.029978499, 0.05310477, 0.027149068, 0, 0.013197635, 0.010663362,
0.016475718, 0.013276193, 3.005148035, 1.277833538, 0.549518929,
0.070566339, 0, 0.09725583, 0.057558719, 0.832066454, 0.333892269,
0.330429682, 0.979883002, 0.049301511, 0.062745329, 0.314140895,
0.025045045, 0.544577582, 0.035572573, 0.052825272, 0.179388769,
0.10774881, 0.149846019, 0.165521362, 0, 0.054267649, 0, 0.091036749,
0.087125014, 0.77114906, 0.187428601, 0.188219439, 0.653597174,
1.489045693, 0.041570186, 0.409714848, 0.97918694, 0.118832806,
0.024824662, 2.073455709, 0.719483986, 2.41013958, 5.076601486,
2.934737312, 2.280381317, 21.99162257, 3.62440058, 5.612650663,
3.776222386), d.chydo = c(0, 0, 0, 0, 0.056465832, 0.05289487,
0, 0, 0, 0, 0, 0, 0.103981369, 0, 0, 0.068733447, 0, 0.041951104,
0.073127881, 0, 0, 0.042317864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.235697885,
0.077444457, 0, 0.015121358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.09504547, 0,
0, 0, 0, 0, 0, 0, 0, 0.030039062, 0, 0.0312381, 0.04998096, 0,
0.125656358, 0.110415859), d.calan = c(1.088465928, 1.555223252,
2.015938784, 4.103286631, 1.72220787, 1.692635844, 2.100293669,
1.858666964, 2.379093714, 3.136950179, 1.269333536, 3.248762425,
3.899301323, 2.077551896, 3.153164746, 3.917806482, 2.06312033,
2.747797305, 1.213922817, 0.688021805, 1.318728416, 2.496753971,
0.075260028, 2.476462517, 0.27394427, 0.772433024, 0.312344034,
0.396927797, 3.825474551, 5.104398827, 0.487617892, 0.634687659,
0.624950149, 1.026825825, 0.281863781, 2.001164765, 2.124190816,
27.10467481, 21.46760343, 4.526400724, 4.182000669, 7.145381169,
18.34684165, 12.42651627, 7.330248364, 4.415513397, 0.314103719,
0.15385708, 0.310292694, 0.08914015, 1.37490433, 1.47144468,
4.137554285, 0.504045278, 1.698699725, 1.3183568, 3.818061686,
2.553981756, 4.585453827, 3.717333928, 4.821646518, 1.745273489,
0.45098205, 3.685919839, 0.73465464, 3.930429504, 5.869474623,
4.82470814, 2.197512416, 4.633198809, 7.267531912, 4.510457122,
4.070342517, 5.643835453, 2.499586607, 6.918792944, 5.663125906,
3.737106981, 5.201143689, 3.689101012, 1.846412017, 3.865182437,
2.327930408, 3.655917107, 0.542427298, 8.971876845, 2.606589458,
1.857816316, 4.388852315, 8.129114854, 6.969062395, 10.9172228,
5.372953241, 1.749333613, 4.938743647, 4.984368873, 4.41663437
), d.cyclo = c(0.305534295, 0.945960535, 1.501231009, 2.68135562,
1.581043291, 1.481056363, 0.650533437, 0.67422233, 1.865425753,
1.669202848, 1.414400226, 3.99847683, 5.770965958, 2.047872583,
1.993913001, 2.302570476, 1.078026839, 1.887799675, 1.608813372,
1.572621269, 0.888123219, 1.904303876, 0.006576119, 0.266127315,
0.026945338, 0.083185095, 0.013197635, 0.081611323, 0.216281247,
0.221930384, 0.05779175, 0.167023068, 0.110972456, 0.235664943,
0.046568799, 0.229235592, 0.588237457, 6.65579789, 10.10650162,
2.558400409, 0.479655991, 2.45893684, 3.387570434, 1.672800268,
1.547496877, 1.251062129, 0.110860136, 0.094446921, 0.131805746,
0.055001369, 0.589244713, 0.593740836, 2.876893214, 0.246982186,
1.005508358, 1.199488564, 3.587826811, 4.067880444, 9.504799924,
5.507161375, 5.568224043, 1.834016209, 0.313726644, 4.544571619,
0.9183183, 4.830166378, 6.972224401, 3.380817383, 2.436697441,
4.363826785, 10.11460627, 4.634598144, 5.530877186, 6.783456073,
2.791205044, 8.102270684, 8.581813873, 7.53353312, 4.592000735,
4.44197877, 1.584973147, 1.489045693, 1.891443457, 2.74193783,
0.39449258, 4.337397415, 1.415005706, 1.327011654, 1.319053974,
6.862770329, 5.767499913, 2.465179342, 6.778667751, 2.69897186,
3.863372047, 2.764439879, 6.823700102)), class = "data.frame", row.names = c("1111E",
"1111S", "116E", "116S", "117E", "117S", "111E", "111S", "1110E",
"1110S", "112E", "112S", "113E", "113S", "114E", "114S", "115E",
"115S", "118E", "118S", "119E", "119S", "710E", "710S", "711E",
"711S", "712E", "712S", "78E", "78S", "79E", "79S", "713E", "713S",
"72S", "73S", "714E", "714S", "715E", "715S", "716E", "716S",
"717E", "717S", "718E", "718S", "719E", "719S", "720S", "721S",
"81E", "81S", "82E", "82S", "83E", "83S", "84E", "84S", "85E",
"85S", "86E", "86S", "87E", "87S", "88E", "88S", "813E", "813S",
"814E", "814S", "815E", "815S", "816E", "816S", "817E", "817S",
"818E", "818S", "819E", "819S", "820E", "820S", "821E", "822E",
"822S", "823E", "823S", "824E", "824S", "810E", "810S", "811E",
"811S", "812E", "812S", "89E", "89S"))
行名是我的站点名称。
NMDS:
znmds <- metaMDS(allzp, distance = 'bray', k=2)
以下示例我发现使用 ggplot 绘制 nmds:
data.scores <- as.data.frame(scores(znmds))
data.scores$site <- rownames(data.scores)
组变量:
structure(list(Tow = c("E", "S", "E", "S", "E", "S", "E", "S",
"E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E",
"S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S",
"S", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E",
"S", "S", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S",
"E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E",
"S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "E", "S", "E",
"S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S")), row.names = c(NA,
-97L), class = "data.frame")
添加我的组变量:
data.scores$grp <- grp
使用 vegan 包中的分数函数提取物种分数并转换为数据框
species.scores <- as.data.frame(scores(znmds, "species"))
species.scores$species <- rownames(species.scores)
ggplot:
ggplot() +
geom_text(data=species.scores,aes(x=NMDS1,y=NMDS2,label=species),alpha=0.5) + # add the species labels
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=grp,colour=grp),size=3) + # add the point markers
geom_text(data=data.scores,aes(x=NMDS1,y=NMDS2,label=site),size=6,vjust=0) + # add the site labels
scale_colour_manual(values=c("S" = "red", "E" = "blue")) +
coord_equal() +
theme_bw()
这给了我以下错误: scale_f()
中的错误:
!连续变量无法映射到 shape
当我检查我的组 (grp) class:
class(data.scores$grp)
[1] "data.frame"
is.vector(as.character(data.scores[,4]))
[1] TRUE
做这个有点不同,不使用 ggplot,有效:
mds.fig <- ordiplot(znmds, type = "none")
points(mds.fig, "sites", pch = 19, col = "green", select = zp1$Tow ==
"S")
points(mds.fig, "sites", pch = 19, col = "blue", select = zp1$Tow ==
"E")
ordiellipse(znmds, zp1$Tow, conf = 0.95, label = TRUE)
这个有效。该图显示 'S' 和 'E' 分组非常相似,因此我尝试做同样的事情,但将月份('11'、'7'、'8')设为我的组,但我尝试使用 ggplot 绘制时仍然出现相同的错误。我不明白问题出在哪里。我没有在此处包含我的 'zp1' 数据,但它基本上是我野外季节的所有数据(我用它来提取 Tow 组,以便最后一个代码绘制它)。我查看了以下帖子:, here, here, here。
谢谢。
尝试 data.scores$grp <- grp$Tow
而不是 data.scores$grp <- grp
。对于前者,您将 data.scores$grp
指定为一个数据框,而对于后者,它是一个能够映射到颜色和形状比例的实际字符向量。
我正在尝试使用我在网上找到的示例绘制 NMDS 结果。当我绘制我的组变量('S' 和 'E')时,我得到“'scale_f()' 中的错误:连续变量无法映射到形状。我尝试使用不同的组(月),我继续得到同样的错误。
library(ggplot2)
library(vegan)
library(dplyr)
用于 NMDS 的数据(很抱歉这太长了):
structure(list(d.lept = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.014625576, 0, 0, 0, 0.008037479, 0.155240934,
0.089817793, 0.160428397, 0.55430068, 0.170641857, 0.081105468,
0.110965192, 0.119195485, 0.389720492, 0.128494423, 0.025249815,
0.053921767, 0.012391113, 0.065359717, 0.084967633, 0, 0, 0,
0, 0.059956999, 0.05310477, 0.027149068, 0, 0.174208785, 0.124913669,
0.032951436, 0.218108878, 0.01964149, 0.051629638, 0.064649286,
0.060485433, 0, 0.043224813, 0.057558719, 0.069338871, 0.022259485,
0.013767903, 0.046661095, 0, 0.105882742, 0.104713632, 0.008348348,
0.094709145, 0, 0.017608424, 0.014949064, 0.026937202, 0.037461505,
0.041380341, 0.023943191, 0, 0.041659777, 0.091036749, 0, 0.177957475,
0.140571451, 0.075287776, 0.049019788, 0.063363647, 0.083140372,
0.157582634, 0.021133531, 0.178249209, 0.049649323, 0.049762937,
0.071948399, 0.204249117, 0, 0.039129831, 0.0312381, 0, 0.079657156,
0.209427264, 0.110415859), d.byths = c(0, 0, 0, 0, 0, 0, 0.037173339,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.007392425,
0.017963559, 0.011883585, 0.021996059, 0, 0, 0, 0, 0.005567436,
0, 0, 0, 0, 0, 0, 0.069700011, 0, 0.01498925, 0.028928669, 0.029978499,
0, 0, 0, 0.002639527, 0.004570012, 0.002745953, 0.001896599,
0, 0, 0, 0, 0, 0, 0, 0, 0.044518969, 0.013767903, 0.015553698,
0.009860302, 0, 0.041885453, 0, 0.023677286, 0.071145147, 0,
0, 0, 0, 0, 0, 0, 0.020829888, 0, 0, 0, 0, 0.037643888, 0, 0.063363647,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.022083172), d.daph = c(0.140036552,
1.010093452, 1.629907953, 2.762608821, 2.357448478, 1.454608928,
0.278800045, 0.346222278, 2.703515584, 0.805822064, 1.450666899,
4.348343553, 12.42577355, 3.294403721, 2.503983769, 2.508770817,
0.706293446, 1.111704253, 0.819032262, 0.655258862, 1.130338642,
1.311853781, 0.031419235, 0.029569702, 0.002245445, 0.029708962,
0.017596847, 0.022257633, 0.770501941, 0.510439883, 0.021671906,
0.100213841, 0.0525659, 0.084166051, 0.024509894, 0.049564452,
0.049019788, 0.651418517, 1.81220029, 0.37720006, 0.344752743,
0.216965015, 0.389720492, 0.424838163, 0.13574534, 0.12265315,
0.010558108, 0.003046675, 0, 0.003793198, 0.039282981, 0, 0,
0, 0.015234975, 0.010806203, 0.134303677, 0.104008307, 0.133556908,
0.082607421, 0.062214794, 0.009860302, 0, 0.041885453, 0, 0.071031858,
0.071145147, 0.070433695, 0.07474532, 0.134686012, 0.299692038,
0.206901703, 0.095772765, 0.108535297, 0.020829888, 0.273110248,
0.261375042, 0.533872426, 0.04685715, 0.075287776, 0, 0, 0, 0,
0, 0.118832806, 0, 0.033175291, 0.0239828, 0.081699647, 0.210273434,
0, 0.093714301, 0.04998096, 0.079657156, 0.041885453, 0.066249516
), d.diaph = c(0, 0, 0.014297438, 0, 0, 0, 0, 0, 0, 0, 0, 0.099961921,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.002245445, 0.005941792,
0, 0, 0, 0.022193038, 0.003611984, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.002639527, 0.001523337, 0.002745953, 0, 0.039282981,
0.129074095, 0.064649286, 0.020161811, 0, 0.010806203, 0, 0,
0, 0, 0, 0, 0.023529498, 0, 0.008348348, 0.047354572, 0.035572573,
0, 0, 0, 0.037461505, 0, 0, 0, 0.041659777, 0, 0, 0.059319158,
0.04685715, 0.037643888, 0.032679859, 0.09504547, 0.020785093,
0.031516527, 0.042267062, 0.059416403, 0.024824662, 0.049762937,
0.047965599, 0, 0.030039062, 0.078259662, 0.124952401, 0.549790564,
0.238971467, 0.041885453, 0), d.bosm = c(1.043908843, 1.923987528,
1.629907953, 2.356342818, 5.51953506, 5.712645973, 2.156053678,
1.968000315, 4.81225774, 3.885213525, 4.442667377, 11.54560185,
3.483375849, 3.383441659, 2.17939328, 2.989904947, 1.56128025,
1.908775227, 4.036659007, 2.293406017, 4.386790445, 6.982447546,
0, 0, 0.00449089, 0, 0, 0.003709606, 0.040552734, 0, 0.007223969,
0, 0.029203278, 0.042083026, 0.024509894, 0.068151122, 0.016339929,
0.424838163, 1.045500167, 0.295200047, 0.029978499, 0.072321672,
0.029978499, 0.05310477, 0.027149068, 0, 0.013197635, 0.010663362,
0.016475718, 0.013276193, 3.005148035, 1.277833538, 0.549518929,
0.070566339, 0, 0.09725583, 0.057558719, 0.832066454, 0.333892269,
0.330429682, 0.979883002, 0.049301511, 0.062745329, 0.314140895,
0.025045045, 0.544577582, 0.035572573, 0.052825272, 0.179388769,
0.10774881, 0.149846019, 0.165521362, 0, 0.054267649, 0, 0.091036749,
0.087125014, 0.77114906, 0.187428601, 0.188219439, 0.653597174,
1.489045693, 0.041570186, 0.409714848, 0.97918694, 0.118832806,
0.024824662, 2.073455709, 0.719483986, 2.41013958, 5.076601486,
2.934737312, 2.280381317, 21.99162257, 3.62440058, 5.612650663,
3.776222386), d.chydo = c(0, 0, 0, 0, 0.056465832, 0.05289487,
0, 0, 0, 0, 0, 0, 0.103981369, 0, 0, 0.068733447, 0, 0.041951104,
0.073127881, 0, 0, 0.042317864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.235697885,
0.077444457, 0, 0.015121358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.09504547, 0,
0, 0, 0, 0, 0, 0, 0, 0.030039062, 0, 0.0312381, 0.04998096, 0,
0.125656358, 0.110415859), d.calan = c(1.088465928, 1.555223252,
2.015938784, 4.103286631, 1.72220787, 1.692635844, 2.100293669,
1.858666964, 2.379093714, 3.136950179, 1.269333536, 3.248762425,
3.899301323, 2.077551896, 3.153164746, 3.917806482, 2.06312033,
2.747797305, 1.213922817, 0.688021805, 1.318728416, 2.496753971,
0.075260028, 2.476462517, 0.27394427, 0.772433024, 0.312344034,
0.396927797, 3.825474551, 5.104398827, 0.487617892, 0.634687659,
0.624950149, 1.026825825, 0.281863781, 2.001164765, 2.124190816,
27.10467481, 21.46760343, 4.526400724, 4.182000669, 7.145381169,
18.34684165, 12.42651627, 7.330248364, 4.415513397, 0.314103719,
0.15385708, 0.310292694, 0.08914015, 1.37490433, 1.47144468,
4.137554285, 0.504045278, 1.698699725, 1.3183568, 3.818061686,
2.553981756, 4.585453827, 3.717333928, 4.821646518, 1.745273489,
0.45098205, 3.685919839, 0.73465464, 3.930429504, 5.869474623,
4.82470814, 2.197512416, 4.633198809, 7.267531912, 4.510457122,
4.070342517, 5.643835453, 2.499586607, 6.918792944, 5.663125906,
3.737106981, 5.201143689, 3.689101012, 1.846412017, 3.865182437,
2.327930408, 3.655917107, 0.542427298, 8.971876845, 2.606589458,
1.857816316, 4.388852315, 8.129114854, 6.969062395, 10.9172228,
5.372953241, 1.749333613, 4.938743647, 4.984368873, 4.41663437
), d.cyclo = c(0.305534295, 0.945960535, 1.501231009, 2.68135562,
1.581043291, 1.481056363, 0.650533437, 0.67422233, 1.865425753,
1.669202848, 1.414400226, 3.99847683, 5.770965958, 2.047872583,
1.993913001, 2.302570476, 1.078026839, 1.887799675, 1.608813372,
1.572621269, 0.888123219, 1.904303876, 0.006576119, 0.266127315,
0.026945338, 0.083185095, 0.013197635, 0.081611323, 0.216281247,
0.221930384, 0.05779175, 0.167023068, 0.110972456, 0.235664943,
0.046568799, 0.229235592, 0.588237457, 6.65579789, 10.10650162,
2.558400409, 0.479655991, 2.45893684, 3.387570434, 1.672800268,
1.547496877, 1.251062129, 0.110860136, 0.094446921, 0.131805746,
0.055001369, 0.589244713, 0.593740836, 2.876893214, 0.246982186,
1.005508358, 1.199488564, 3.587826811, 4.067880444, 9.504799924,
5.507161375, 5.568224043, 1.834016209, 0.313726644, 4.544571619,
0.9183183, 4.830166378, 6.972224401, 3.380817383, 2.436697441,
4.363826785, 10.11460627, 4.634598144, 5.530877186, 6.783456073,
2.791205044, 8.102270684, 8.581813873, 7.53353312, 4.592000735,
4.44197877, 1.584973147, 1.489045693, 1.891443457, 2.74193783,
0.39449258, 4.337397415, 1.415005706, 1.327011654, 1.319053974,
6.862770329, 5.767499913, 2.465179342, 6.778667751, 2.69897186,
3.863372047, 2.764439879, 6.823700102)), class = "data.frame", row.names = c("1111E",
"1111S", "116E", "116S", "117E", "117S", "111E", "111S", "1110E",
"1110S", "112E", "112S", "113E", "113S", "114E", "114S", "115E",
"115S", "118E", "118S", "119E", "119S", "710E", "710S", "711E",
"711S", "712E", "712S", "78E", "78S", "79E", "79S", "713E", "713S",
"72S", "73S", "714E", "714S", "715E", "715S", "716E", "716S",
"717E", "717S", "718E", "718S", "719E", "719S", "720S", "721S",
"81E", "81S", "82E", "82S", "83E", "83S", "84E", "84S", "85E",
"85S", "86E", "86S", "87E", "87S", "88E", "88S", "813E", "813S",
"814E", "814S", "815E", "815S", "816E", "816S", "817E", "817S",
"818E", "818S", "819E", "819S", "820E", "820S", "821E", "822E",
"822S", "823E", "823S", "824E", "824S", "810E", "810S", "811E",
"811S", "812E", "812S", "89E", "89S"))
行名是我的站点名称。
NMDS:
znmds <- metaMDS(allzp, distance = 'bray', k=2)
以下示例我发现使用 ggplot 绘制 nmds:
data.scores <- as.data.frame(scores(znmds))
data.scores$site <- rownames(data.scores)
组变量:
structure(list(Tow = c("E", "S", "E", "S", "E", "S", "E", "S",
"E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E",
"S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S",
"S", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E",
"S", "S", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S",
"E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S", "E",
"S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "E", "S", "E",
"S", "E", "S", "E", "S", "E", "S", "E", "S", "E", "S")), row.names = c(NA,
-97L), class = "data.frame")
添加我的组变量:
data.scores$grp <- grp
使用 vegan 包中的分数函数提取物种分数并转换为数据框
species.scores <- as.data.frame(scores(znmds, "species"))
species.scores$species <- rownames(species.scores)
ggplot:
ggplot() +
geom_text(data=species.scores,aes(x=NMDS1,y=NMDS2,label=species),alpha=0.5) + # add the species labels
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=grp,colour=grp),size=3) + # add the point markers
geom_text(data=data.scores,aes(x=NMDS1,y=NMDS2,label=site),size=6,vjust=0) + # add the site labels
scale_colour_manual(values=c("S" = "red", "E" = "blue")) +
coord_equal() +
theme_bw()
这给了我以下错误: scale_f()
中的错误:
!连续变量无法映射到 shape
当我检查我的组 (grp) class:
class(data.scores$grp)
[1] "data.frame"
is.vector(as.character(data.scores[,4]))
[1] TRUE
做这个有点不同,不使用 ggplot,有效:
mds.fig <- ordiplot(znmds, type = "none")
points(mds.fig, "sites", pch = 19, col = "green", select = zp1$Tow ==
"S")
points(mds.fig, "sites", pch = 19, col = "blue", select = zp1$Tow ==
"E")
ordiellipse(znmds, zp1$Tow, conf = 0.95, label = TRUE)
这个有效。该图显示 'S' 和 'E' 分组非常相似,因此我尝试做同样的事情,但将月份('11'、'7'、'8')设为我的组,但我尝试使用 ggplot 绘制时仍然出现相同的错误。我不明白问题出在哪里。我没有在此处包含我的 'zp1' 数据,但它基本上是我野外季节的所有数据(我用它来提取 Tow 组,以便最后一个代码绘制它)。我查看了以下帖子:
尝试 data.scores$grp <- grp$Tow
而不是 data.scores$grp <- grp
。对于前者,您将 data.scores$grp
指定为一个数据框,而对于后者,它是一个能够映射到颜色和形状比例的实际字符向量。