使用Texthero计算PCA与KMeans后绘制散点图空白问题问询
- 先拆分PCA输出列为独立的坐标列
Texthero的pca()接口默认输出的是每行包含维度数值的列表,无法直接作为绘图的x、y轴数据源,需要先拆分为单独的列,参考代码:
import pandas as pd # 假设你的PCA结果存储在df的pca列下 df[['pca_x', 'pca_y']] = pd.DataFrame(df['pca'].tolist(), index=df.index)
- 核对绘图参数配置
确认绘图时传入的x、y轴列名、聚类标签列名和数据帧的实际列名完全一致,避免因参数拼写错误无法读取数据,以seaborn为例的正确参考写法:
import seaborn as sns import matplotlib.pyplot as plt # 假设KMeans结果存储在kmeans列下 sns.scatterplot(data=df, x='pca_x', y='pca_y', hue='kmeans') plt.show()
- 排查数据异常问题
- 执行
df[['pca_x', 'pca_y', 'kmeans']].isnull().sum()检查对应列是否存在空值,空值过多会导致无数据可绘 - 执行
df[['pca_x', 'pca_y']].describe()查看坐标值的数值范围,确认你手动设置的xlim/ylim没有超出所有数据的区间,避免点全部落在画布外
- 执行
- 确认预处理流程有效性
如果文本预处理阶段过滤规则过严,导致所有文本被处理为空字符串,后续PCA和KMeans计算结果全部为无效值,也会出现空白图,可以返回检查预处理后的文本列是否仍有有效内容。
内容的提问来源于stack exchange,提问作者kittyKat
相关产品推荐
相关产品推荐

