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

如何为prince库绘制的对应分析散点图添加标注

解决prince库对应分析散点图添加标注的方法

直接用matplotlib手动绘制并添加标注即可,步骤如下:

  1. 拟合CA模型并提取坐标数据
import prince
import matplotlib.pyplot as plt

# 拟合CA模型
ca = prince.CA()
ca.fit(dummy_contingency)

# 提取行、列的前两个主成分坐标
row_coords = ca.row_coordinates(dummy_contingency)
col_coords = ca.column_coordinates(dummy_contingency)
  1. 手动绘制散点并添加标注
# 创建画布
plt.figure(figsize=(8, 6))

# 绘制行点(索引0-9,蓝色)
plt.scatter(row_coords[0], row_coords[1], color='#1f77b4', label='行类别')
# 为每个行点添加索引标注
for idx, (x, y) in enumerate(zip(row_coords[0], row_coords[1])):
    plt.text(x + 0.02, y + 0.02, str(idx), fontsize=9)

# 绘制列点(v1-v4,橙色)
plt.scatter(col_coords[0], col_coords[1], color='#ff7f0e', label='列类别')
# 为每个列点添加名称标注
for col_name, (x, y) in col_coords.iterrows():
    plt.text(x + 0.02, y + 0.02, col_name, fontsize=9)

# 添加图表辅助元素
plt.xlabel(f'主成分1 ({round(ca.eigenvalues_[0]/sum(ca.eigenvalues_)*100, 1)}%)')
plt.ylabel(f'主成分2 ({round(ca.eigenvalues_[1]/sum(ca.eigenvalues_)*100, 1)}%)')
plt.title('对应分析散点图(带标注)')
plt.legend()
plt.grid(alpha=0.3)

plt.show()

说明

  • 通过row_coordinates和column_coordinates直接提取行、列在主成分上的坐标,完全替代原plot_coordinates的功能;
  • plt.text()的偏移量x+0.02、y+0.02可根据实际图形调整,避免标注覆盖散点;
  • 颜色可自行替换为需要的RGB值或颜色名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:22:09