You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用FAMD对象plot_row_coordinates方法报错:对象无该属性

FAMD调用plot_row_coordinates报错的解决办法

问题核心

你使用的FAMD类没有内置plot_row_coordinates方法,只有prince库实现的FAMD才提供这个绘图接口。

解决步骤

  1. 确认并安装prince库
    先检查是否安装了prince,没安装的话执行:

    pip install prince
    

    然后确保代码中导入的是prince的FAMD:

    from prince import FAMD
    
  2. 修正绘图代码参数
    原代码中color_labels对应的是全量df['Target'],但绘图只用了前200行数据,需要对应截取标签,避免长度不匹配:

    #FAMD
    from prince import FAMD
    
    famd = FAMD(n_components = 10, n_iter = 3, random_state = 101)
    famd.fit(df.drop('Target', axis=1)) #剔除响应变量'Target'
    print(famd.eigenvalues_summary)
    
    #绘制成分图
    famd.plot_row_coordinates(
        df.head(200),
        figsize = (15,10),
        color_labels=['Completion status: {}'.format(t) for t in df['Target'].head(200)]
    )
    
  3. 替代方案:手动绘图(无需prince)
    如果不想依赖prince库,可以提取FAMD转换后的主成分,用matplotlib/seaborn手动绘制:

    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # 获取转换后的主成分
    transformed_data = famd.transform(df.drop('Target', axis=1))
    # 取前200行数据与对应标签
    subset_data = transformed_data.head(200)
    subset_target = df['Target'].head(200)
    
    # 绘制散点图
    plt.figure(figsize=(15,10))
    sns.scatterplot(x=subset_data.iloc[:,0], y=subset_data.iloc[:,1], hue=subset_target)
    plt.title('FAMD行坐标分布(成分1 vs 成分2)')
    plt.xlabel('主成分1')
    plt.ylabel('主成分2')
    plt.legend(title='完成状态')
    plt.show()
    

内容的提问来源于stack exchange,提问作者mbluck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:27:19