
简介面向生态学、植物学与环境科学领域的科研人员和学生这份Canoco 4.5中文教程是学习约束与非约束排序分析的入门参考尤其适合在物种组成数据中探索环境驱动因素的新手。教程从主界面入手依次说明核心模块Canoco for Windows的数据指定与模型选择、WcanoImp的外部数据导入、CanoDraw排序图绘制、CanoMerge数据合并与低频物种过滤以及PrCoord主坐标分析等操作方法。同时系统梳理了PCA、CA、DCA、PCoA等非约束排序方法RDA、CCA、DCCA、CVA等约束排序方法以及partial RDA、partial CCA等偏分析技术帮助读者理解不同方法的适用场景。资源为单个PDF文档压缩包大小仅2.3MB内容精炼但覆盖从模块功能到统计分析框架的完整链路配有界面窗口说明。已有400人学习下载对从事群落结构分析、生态梯度解释或环境效应评估的研究者是快速掌握Canoco操作与排序方法选择的实用资料。1. 生态数据排序分析从 Canoco 4.5 中文教程入手会更快十多年前我在处理植被样方数据时第一次被导师要求用 Canoco 做 DCA 和 CCA。那时候手头只有一本英文手册翻得头疼。后来找到一份 2009 年的 Canoco for Windows 4.5 中文简明教程 PDF才把软件模块和排序流程真正捋顺。这份教程不厚但覆盖了 Wcanolmp 数据导入、DCA 判断梯度长度、PCA/RDA/CCA 的参数设置以及 CanoDraw 出图时对定性变量和稀有种的处理规则。对正在做群落生态学、环境梯度分析或者生态毒理实验数据的人而言这份 PDF 的价值在于它把「先做 DCA 判模型再选 RDA 还是 CCA」这条主线讲得很清楚避免了新人在模型选择上走弯路。下面我结合自己的使用经验把这份教程里最容易卡住的操作点按实际分析流程拆开讲。2. 排序模型选择先用 DCA 的梯度长度定线性还是单峰2.1 为什么 DCA 是进入 Canoco 的第一个动作教程里反复强调进入正式分析前先对物种数据做一次去趋势对应分析目的不是出图而是看 Log View 里的“Lengths of gradient”。这个梯度长度代表排序轴上的物种更换程度生态学上可以理解为环境梯度对物种组成的影响范围。用教程里的判断标准梯度最大值大于 4选单峰模型CCA、DCA小于 3选线性模型PCA、RDA处于 3 到 4 之间两种模型都可以尝试。实际操作中我一般会把 DCA 的结果保存成一个单独的 project再根据梯度长度重新新建分析。不要直接在 DCA 结果上继续做约束排序因为后续还需要单独设置环境变量和协变量分开管理会让 Log View 里的统计量更清晰。2.2 DCA 分析的具体操作步骤在 Canoco for Windows 4.5 主界面新建 Project第一步是选择数据文件这时需要勾选“间接梯度分析”选项表示我们要先做非约束排序。接着指定物种数据文件和分析结果输出文件。分析类型对话框中选择 DCA去趋势方法按教程默认选 by segments。这里有几个细节值得注意。分析流程对应软件对话框顺序 1. Available Data - 选择 Indirect gradient analysis 2. Data files - 指定物种数据*.dta和结果文件*.sol 3. Analysis type - DCA 4. Detrending - by segments 5. Species data transformation - Log transformation 6. 后续对话框全部默认 - Finish - 保存 *.con 项目文件关于对数转换教程里默认转换公式参数为 1也就是 ln(x1) 这类常见形式。如果原始数据中有零要注意转换后是否出现空值如果物种数据量纲差异极大建议在 Excel 里先做标准化再导入而不是完全依赖 Canoco 内部的转换。运行分析后在 Log View 窗口中找到特征值分布区域里面会有四个轴的 Lengths of gradient。例如教程里的例子最大梯度是 2.001这意味着后续应采用线性模型。我处理过的土壤微生物数据经常超过 4但要注意如果样方里有大量空样方单峰模型的拟合会不稳定即使梯度长度大于 4也要考虑剔除空样方或改用线性模型。2.3 去趋势方法的选择与拱形效应对应分析中第二轴的位置往往依赖于第一轴导致排序图出现“拱形效应”。去趋势就是为了消除这种依赖。Canoco 提供两种去趋势方式区间去趋势和多项式去趋势。教程给出的多项式阶数选择标准是环境因子少于 10 个选 2 阶少于 13 个选 3 阶超过 13 个选 4 阶。这个经验值在实际使用中比较实用但如果你用的是约束排序一般不需要去趋势因为约束轴本身已经受到环境变量的限制不容易产生严重的拱形。我遇到的一个常见误区是有些人会在做 CCA 前先对物种数据单独做 DCA然后把 DCA 的梯度长度作为是否用 CCA 的唯一依据。这样做本身没问题但 DCA 基于单峰模型它对数据中的异常值敏感如果原始物种数据存在大量零DCA 的梯度长度会被拉长从而误导模型选择。所以建议同时检查物种数据的频度分布必要时先滤掉低频物种再跑 DCA。3. 非约束排序PCA 的尺度比例与中心化标准化参数3.1 PCA 中中心化和标准化的实际含义PCA 是基于线性模型的排序方法核心目标是用原始变量的线性组合生成新的主成分用少数几个轴代表大部分变异。在 Canoco 中分析前需要考虑数据中心化和标准化。中心化是让每列变量的平均值为零标准化是让每列变量的方差为 1。教程强调几乎所有线性模型分析都需要中心化但标准化不一定需要。如果物种数据的量纲不同比如有的物种用多度有的用盖度那么必须标准化否则量纲大的变量会主导排序轴。这个环节经常有人直接点默认结果发现排序图里箭头长度被某个高丰度物种带偏。我的做法是先看数据矩阵的数值范围如果所有变量单位一致且数量级接近只做中心化如果混合了不同测量单位则在数据转换对话框里勾选标准化。3.2 排序尺度比例怎么选教程里有一个专门对话框左边是“Focus scaling on”右边是“Species scores”。如果你关注样方之间的差异选 inter-sample distances这样排序图里样方点之间的距离更接近真实欧氏距离如果你关注物种之间的相关性选 inter-species correlations两者都关注就选最后一项。实际出图时我发现做环境梯度解释时选 inter-species correlations 更容易看清物种对环境因子的响应方向而做群落分区时选 inter-sample distances 更直观。右边的 Species scores 涉及箭头长度的含义。选择 divided by the standard deviation箭头长度代表物种变化量被排序空间展示的百分比也就是相对解释量选择 Do not post-transform箭头长度代表物种在排序空间中的绝对变化量。几乎每次有学生问我为什么排序图里某个物种的箭头特别长我都会让他们检查这一项是否选错。如果要比较不同物种对环境变量的响应强度用除以标准差的方式更合理。3.3 PCA 完整操作与结果解读PCA 的操作前两步和 DCA 一致只是在分析类型里选 PCA。随后出现尺度比例对话框按上述原则选择。数据转换对话框里同样可以对数转换之后的中心化和标准化对话框如图 3-5 所示一般默认中心化勾选标准化视数据情况决定。后面的数据编辑和完成选项全部默认运行后在 Log View 里看四个轴的累计解释量。例如教程中展示的结果第一轴解释量 0.207第二轴 0.132前两轴累计 33.9%。这个比例在生态数据中不算低因为物种数据通常噪声大能够解释三分之一已经可以作图解释了。排序图生成后通过 CanoDraw 的 Create Biplots and joint Plots Species and evi. Variables 得到双序图。图中环境变量以箭头表示箭头与排序轴夹角越小相关性越强。教程里的示例是海拔Altit与第一轴高度相关于是后续 RDA 就用海拔作为唯一环境变量这是一个很典型的从 PCA 到 RDA 的递进逻辑。如果环境变量里包含定性变量比如土壤类型、处理组别出图前必须通过 Project Nominal variables Environmental variables 将其筛选到右侧。否则 CanoDraw 会把定性变量当作连续变量处理生成的箭头没有意义。4. 约束排序RDA 与 CCA 的操作差异及蒙特卡罗检验4.1 RDA 是约束化的 PCA关键在于环境变量预选冗余分析RDA在数学上是 PCA 的约束版本样方在排序图中的坐标是环境因子的线性组合。这就意味着RDA 的排序轴是被环境变量解释后的主轴而不是潜在梯度。因此RDA 的分析结果高度依赖你放进去哪些环境变量。如果环境变量过多会出现共线性问题典范轴的解释量被稀释。教程中专门用一个图来展示环境变量预选的重要性里面每个备选环境因子后面都带一个数字表示如果将该因子引入分析可以增加多少解释量。手动预选时先选解释量最大的因子作为第一个然后将它设为协变量再检验剩余因子是否能显著增加解释量逐步迭代。这个过程本质上是偏蒙特卡罗置换检验的应用。实际操作时我在 Canoco 里通常会先用自动预选跑一遍看看软件推荐的变量顺序再结合生态学知识手动调整。比如土壤 pH 和有机质往往高度相关自动预选可能只选 pH但如果你研究的是重金属污染那么即便有机质解释量略低也应该保留因为实验设计上它不可缺失。4.2 RDA 分析中的蒙特卡罗检验设置RDA 是否显著需要靠蒙特卡罗置换检验来判断。Canoco 提供两种检验目标第一轴的显著性检验和所有典范轴的显著性检验。当只有一个环境变量时两种检验等价当有多个环境变量时建议同时检验因为有时候第一轴不显著但第二轴显著这可能说明某个环境变量对群落结构的影响方向不同。置换类型的选择也很关键。如果样方之间相互独立比如完全随机采样用 Unrestricted permutations 即可。如果样方是按空间或时间序列排列的比如沿着河流从上游到下游采样或是在同一地点不同年份重复采样样方之间存在自相关这时候就要用限制性置换否则检验结果会低估实际显著性。Canoco 提供旋转法来处理这类情况原理是把样方首尾相连形成一个圆筒通过旋转改变样方和环境因子的配对。教程里明确提到这一点但很多人忽略了导致分析结果被审稿人质疑。4.3 CCA 的弓形效应与 DCCA 的取舍典范对应分析CCA基于单峰模型适合响应变量和环境因子呈非线性关系的数据。它的计算过程融合了对应分析和多元回归每一步迭代的样方坐标都与环境因子回归。CCA 的优点是可以把样方、物种和环境因子展示在一张图上缺点是当环境梯度较长时会出现明显的弓形效应影响轴的解释。教程里给出了一个具体的例子直接做 CCA 后样方散点图呈弧形分布这说明梯度太长单峰响应发生多次转折。解决办法有两个一是用去趋势典范对应分析DCCA消除弓形效应二是通过变量预选去除相关性过高的冗余变量缩短有效梯度长度。我个人更倾向于后者因为 DCCA 在去趋势的同时也会损失一部分真实变异信息而且 DCCA 的排序轴解释量不像 CCA 那样直接。如果梯度本身是生态学关心的对象比如海拔跨度极大保留弓形效应并用 DCCA 表达比强行压缩变量更合理。4.4 CCA 的尺度比例设置单峰模型的尺度比例对话框里有 Hills scaling 和 biplot scaling 两个选项。Hills scaling 适用于物种梯度较长的数据它把排序轴的单位转换为物种更替的标准差适合表达群落沿着梯度的更替速度。biplot scaling 适用于物种集中、梯度较短的数据它能提供更量化的解释比如物种对环境因子的响应权重。当我处理样方跨度较大的植被数据时会用 Hills scaling 展示样方之间的周转速率当数据来自相对均质的样地时用 biplot scaling 更合适。教程推荐一般选择后者这与大多数生态学论文里 CCA 图的标注方式一致。5. 数据导入与模块配合Wcanolmp 和 CanoMerge 的细节5.1 Wcanolmp 数据导入的命名规则与常见报错Canoco for Windows 4.5 不直接读取 Excel 文件必须用 Wcanolmp 模块把数据转换成 .dta 格式。这个模块的界面很简单核心是三个选择框第一个框表示数据是否以行为样方、列为变量组织通常默认不选第二个框表示是否已经包含样方名行如果你的 Excel 第一列是样方编号、第一行是变量名需要勾选第三个框表示是否包含变量名列。容易出错的地方在于命名规则样方名和变量名不能超过 8 个字符支持数字、字母、点、连接符和空格。超过 8 位的部分会被自动截断不符合规定的字符会被替换成点。这意味着在 Excel 里把变量名写成 Soil_pH_2024 这种长名字导入后很可能变成 Soil_pH_后面的 2024 就丢了。所以我在整理数据时会在变量名这一行手动改成简写比如 pH、TN、TP、Alt、Slo 这种不超过 8 位的名称。虽然教程说可以直接在 Wcanolmp 里让软件自动改名但自动改名经常产生重名比如 Site1_Spring 和 Site1_Summer 截断后都变成 Site1_S容易导致分析混乱。另一个注意事项是从 Excel 复制数据时必须只复制数据矩阵区域不要复制整个工作表否则空行会被导入成无效样方影响 DCA 的梯度长度计算。5.2 CanoMerge 合并数据与低频物种过滤CanoMerge 模块用于合并多个 .dta 文件或者将数据输出为制表符分隔的文本格式方便 SPSS 或 R 读取。界面里 Add file 按钮逐个添加需要合并的文件Merge 按钮执行合并。对话框下部有一个过滤低频物种的功能数字代表包含某物种的样方数阈值。比如设置为 2表示只有出现在 2 个及以上样方中的物种才会被保留单次出现在一个样方里的稀有种会被剔除。过滤阈值怎么定教程没有给经验值我的习惯是根据总样方数的 5% 到 10% 来设置。例如有 50 个样方阈值设为 3 到 5能够有效减少罕见种对排序结果的干扰同时不丢失群落特征种。如果研究目的包含稀有种比如保护生物学或指示物种筛选则不应该过滤这时候可以把阈值设为 1相当于不过滤。合并完成后输出文本文件时注意编码格式Canoco 早期版本默认 ANSI如果用现代 Excel 打开乱码可以尝试用记事本另存为 UTF-8。5.3 PrCoord 模块的用途边界教程提到了 PrCoord 模块可以对特定数据集做主坐标分析以及冗余分析。实际使用中PrCoord 主要用于计算主坐标PCoA的坐标值用于后续的 db-RDA 分析。当你需要分析的不是原始物种多度而是基于距离矩阵的生态数据时先用 PrCoord 计算距离或相似性矩阵的坐标然后再把这些坐标作为响应变量数据导入 Canoco。我在处理功能多样性数据时常用这个方法因为功能性状数据的距离矩阵不能直接用物种多度分析。使用 PrCoord 时需要指定距离指数的类型比如 Bray-Curtis 或欧氏距离。如果数据里包含负值要先用合适的方法转换因为很多距离指数要求非负输入。PrCoord 的输出文件同样是 .dta 格式可以直接在 Canoco 里作为物种数据使用但要注意此时排序结果的含义不再是物种多度梯度而是距离空间上的样方关系。6. CanoDraw 出图优化稀有种过滤和属性批量调整CanoDraw 是 Canoco 出图的核心模块但它默认会把所有物种都画出来导致稀有种堆积在图中央干扰对主要梯度的判断。教程给出了两个保留物种的标准物种适合度和物种权重。物种适合度表示该物种变化在排序空间中被展示的百分比可以在 Project Settings Inclusion Rules 里设置阈值。比如 RDA 第一轴解释量是 11.5%把 Lower Axis Minimum Fit 设为 11%那么只有适合度大于 11% 的物种才会出现在图中。物种权重适用于单峰排序等于某物种多度占所有物种多度的比例可以自行设置阈值。出图时我的一般流程是先根据 Log View 里的轴解释量设定一个适中的阈值比如第一轴解释量的 60% 到 80%然后观察图中物种数量是否合适。如果超过 30 个物种图会显得拥挤再逐步提高阈值。定性变量的处理在 Project Nominal variables 里完成这一步必须在生成排序图之前做否则已经生成的图不会更新。排序图中箭头和文字样式的修改用鼠标左键单击选中目标按 F5 键打开属性对话框可以调整符号大小、字体、线条颜色。如果要批量修改比如把所有物种标签都变成斜体选中一个标签后右键选择 Select Suchlike再按 F5 统一设置。这个技巧在处理多变量图时非常节省时间。对于最终配图建议直接在 CanoDraw 里用 File Export 输出 300 dpi 的 PNG 文件而不是截图。如果期刊要求矢量图可以输出为 bmp 再转换或者尝试导出为 emf 格式。教程提到排序图可以保存为 .cdg 文件这是 CanoDraw 的工程文件后续要修改时重新打开 .cdg 会比较方便。如果想在排序图上添加等值线比如土壤 pH 的梯度线可以通过 Create 菜单下的等值线功能选择环境变量后自动生成。操作时注意等值线的平滑参数默认值有时会产生过拟合的锯齿适当提高平滑度会让图更清晰。本文还有配套的精品资源点击获取