skbio.stats.ordination.OrdinationResults.plot

OrdinationResults.plot(df=None, column=None, axes=(0, 1, 2), axis_labels=None, title='', cmap=None, s=20)[源代码]

创建由元数据着色的排序结果的三维散点图。

状态:从0.4.0开始实验。

创建排序结果的三维散点图,其中每个点代表一个样本。或者,可以通过元数据对这些点进行着色(请参见 dfcolumn (见下文)。

参数:
  • df (pd.DataFrame, optional) -- DataFrame 包含示例元数据的。必须按样本ID索引,排序结果中的所有样本ID必须存在于 DataFrame 。如果 None ,样本(即,点)不会被元数据着色。

  • column (str, optional) -- 中的列名 df 要对样本(即,绘图中的点)进行着色,请使用。不能具有丢失的数据(即, np.nan )。 column 可以是数字的也可以是绝对的。如果为数字,则该列中的所有值都将强制转换为 float 并映射到颜色,使用 cmap 。将包括一个颜色条作为图例。如果是绝对的(即,不是 column 可能会被塑造成 float ),将使用沿线等间距的点为每个类别选择颜色 cmap 。将包括一个传奇故事。如果 None ,样本(即,点)不会被元数据着色。

  • axes (iterable of int, optional) -- 要在x轴、y轴和z轴上打印的样本坐标的索引。例如,如果绘制PCoA结果, axes=(0, 1, 2) 将在x轴上绘制PC 1,在y轴上绘制PC 2,在z轴上绘制PC 3。必须恰好包含三个元素。

  • axis_labels (iterable of str, optional) -- X轴、y轴和z轴的标签。如果 None ,标签将是的值 axes 演绎成弦乐。

  • title (str, optional) -- 剧情标题。

  • cmap (str or matplotlib.colors.Colormap, optional) -- 要用于贴图的matplotlib色彩贴图的名称或实例 column 值设置为颜色。如果 None ,默认为matplotlib RC文件中指定的颜色映射。定性色图(例如, Set1 )被推荐用于分类数据,而顺序色彩映射(例如, Greys ),建议用于数字数据。看见 [1] 用于这些色彩映射表分类。

  • s (scalar or iterable of scalars, optional) -- 点的大小。请参阅matplotlib的 Axes3D.scatter 文档以了解更多详细信息。

返回:

该图包含散点图和图例/颜色条(如果提供了元数据)。

返回类型:

matplotlib.figure.Figure

抛出:

ValueError -- 在无效输入时引发,包括以下情况:-没有至少三个要绘制的维度-没有恰好有三个值 axes 、它们不是唯一的,或者超出范围-- axis_labels -任一 dfcolumn 是在没有另一个的情况下提供的- column 不在 DataFrame -排序结果中的样本ID不在 df 或中有缺失的数据 column

参见

mpl_toolkits.mplot3d.Axes3D.scatter

备注

该方法创建排序结果的基本曲线图,并且旨在提供对元数据上下文中的结果的快速查看(例如,从IPythonNotebook内)。为了更好地进行定制,并生成出版质量的数据,我们推荐Emperior [2].

引用

示例

定义一个包含四个标记为A-D的样本的距离矩阵:

>>> from skbio import DistanceMatrix
>>> dm = DistanceMatrix([[0., 0.21712454, 0.5007512, 0.91769271],
...                      [0.21712454, 0., 0.45995501, 0.80332382],
...                      [0.5007512, 0.45995501, 0., 0.65463348],
...                      [0.91769271, 0.80332382, 0.65463348, 0.]],
...                     ['A', 'B', 'C', 'D'])

中的每个样本定义元数据 pandas.DataFrame

>>> import pandas as pd
>>> metadata = {
...     'A': {'body_site': 'skin'},
...     'B': {'body_site': 'gut'},
...     'C': {'body_site': 'gut'},
...     'D': {'body_site': 'skin'}}
>>> df = pd.DataFrame.from_dict(metadata, orient='index')

对距离矩阵运行主坐标分析(PCoA):

>>> from skbio.stats.ordination import pcoa
>>> pcoa_results = pcoa(dm)

绘制排序结果图,其中每个样本按身体部位(分类变量)进行着色:

>>> fig = pcoa_results.plot(df=df, column='body_site',
...                         title='Samples colored by body site',
...                         cmap='Set1', s=50)

(Source code, png)

../_images/skbio-stats-ordination-OrdinationResults-plot-1.png