m0_69473531 2023-12-26 14:46 采纳率: 78.6%
浏览 5
已结题

python中的LDA问题

设置话题4个,为什么输出只有3个图
{dis_cols = 4 dis_rows = 3 dis_wordnum=10
plt.figure(figsize=(5 * dis_cols, 5 * dis_rows),dpi=128) kind=len(df['topic'].unique())
for i in range(kind):
ax=plt.subplot(dis_rows,dis_cols,i+1)
most10 = [ (k,float(v)) for k,v in word_pro[i].items()][:dis_wordnum] #高频词

  • 写回答

2条回答 默认 最新

  • K_n_i_g_h_t_1990 2023-12-26 14:51
    关注
    
    # 导入matplotlib库
    import matplotlib.pyplot as plt
    
    # 设置话题个数为4
    dis_cols = 4
    dis_rows = 3
    dis_wordnum = 10
    plt.figure(figsize=(5 * dis_cols, 5 * dis_rows), dpi=128)
    kind = len(df['topic'].unique())
    
    # 循环绘制每个主题的高频词图
    for i in range(kind-1): # 注意这里要减一,否则只会绘制三个图
        ax = plt.subplot(dis_rows, dis_cols, i+1) # 注意这里要加一,否则第一个图会被覆盖
        most10 = [(k, float(v)) for k, v in word_pro[i].items()][:dis_wordnum] # 高频词
        # 提取高频词的词和频率
        words = [w[0] for w in most10]
        freqs = [w[1] for w in most10]
        # 绘制柱状图
        ax.bar(words, freqs)
        # 设置图的标题和坐标轴
        ax.set_title(f"Topic {i+1}") # 注意这里要加一,否则第一个主题会显示为0
        ax.set_xlabel("Word")
        ax.set_ylabel("Frequency")
    
    # 显示或保存图像
    plt.show()
    # plt.savefig("topics.png")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 12月26日

悬赏问题

  • ¥15 基础的图像处理问题求解答
  • ¥50 全国两定智慧医保接口开发相关业务文档,以及技术实现流程文档
  • ¥15 idea做图书管理系统,要求如下
  • ¥15 最短路径分配法——多路径分配
  • ¥15 SQL server 2022安装程序(英语)无法卸载
  • ¥15 关于#c++#的问题:把一个三位数的素数写在另一个三位数素数的后面
  • ¥15 求一个nao机器人跳舞的程序
  • ¥15 anaconda下载后spyder内无法正常运行
  • ¥20 统计PDF文件指定词语的出现的页码
  • ¥50 分析一个亿级消息接收处理策略的问题?