not_urslxy 2024-05-08 16:23 采纳率: 0%
浏览 5

请问这个plt为什么会报错啊,怎么解决


import jieba
from matplotlib import pylab as plt
from wordcloud import WordCloud
from PIL import Image
import numpy as np
from pymysql import *
import json


# 文章词云
def get_article_img(targetImgSrc, resImgSrc):
    conn = connect(host='localhost', port=3306, user='root', password='root', database='weiboarticles')
    cursor = conn.cursor()  # 游标
    sql = 'select content from article'  # 查找文章内容
    cursor.execute(sql)
    data = cursor.fetchall()  # 获取所有数据
    text = ''
    for item in data:
        text += item[0]
    cursor.close()
    conn.close()

    cut = jieba.cut(text)  # 切分
    string = ' '.join(cut)  # 词语之间空格连接
    # print(string)

    img = Image.open(targetImgSrc)
    img_arr = np.array(img)  # 将图片转换成列表
    wc = WordCloud(
        background_color='white',
        mask=img_arr,
        font_path='STHUPO.TTF'
    )
    wc.generate_from_text(string)

    fig = plt.figure(1)
    plt = imshow(wc)
    plt.axis('off')

    plt.savefig(resImgSrc, dpi=500)  # 保存结果图片,dpi清晰度


if __name__ == '__main__':
    get_article_img('./static/1.jpg', './static/article_cloud.jpg')

  • 写回答

3条回答 默认 最新

  • 笑面虎 2024-05-08 16:23
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    【问题概括】: 这个问题的目的是生成一个文章的词云图像,使用特定的遮罩图片和字体。

    【问题出现原因】:

    1. 导入模块时使用了错误的别名,from matplotlib import pylab as plt 应该是 import matplotlib.pyplot as plt
    2. 在使用 plt 时,应该先导入 matplotlib.pyplot 而不是 pylab
    3. imshow 函数应该直接调用 plt.imshow() 而不是 plt = imshow(wc)

    【问题解决方案】: 修改导入 matplotlib 的方式,并修正代码中使用 plt 的地方。

    【提供代码】: 以下是修改后的代码:

    import jieba
    import matplotlib.pyplot as plt  # 修改这里
    from wordcloud import WordCloud
    from PIL import Image
    import numpy as np
    import pymysql
    
    # 文章词云
    def get_article_img(targetImgSrc, resImgSrc):
        # ... [省略数据库操作代码] ...
    
        cut = jieba.cut(text)
        string = ' '.join(cut)
    
        img = Image.open(targetImgSrc)
        img_arr = np.array(img)
        wc = WordCloud(
            background_color='white',
            mask=img_arr,
            font_path='STHUPO.TTF'
        )
        wc.generate_from_text(string)
    
        fig = plt.figure(1)  # 使用 matplotlib.pyplot
        plt.imshow(wc)  # 修改这里
        plt.axis('off')
    
        plt.savefig(resImgSrc, dpi=500)  # 保存结果图片,dpi清晰度
    
    if __name__ == '__main__':
        get_article_img('./static/1.jpg', './static/article_cloud.jpg')
    

    【代码运行方式】:

    1. 确保你的环境中安装了 jieba, matplotlib, wordcloud, PIL, numpy, 和 pymysql
    2. 将上述代码保存为 .py 文件。
    3. 在命令行或你的IDE中运行这个脚本。

    【代码预期运行结果】: 如果代码正确无误,它将生成一个词云图片并保存到指定的路径。

    【推荐相关链接】:

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月8日

悬赏问题

  • ¥15 AnolisOs7.9如何安装 Qt_5.14.2的运行库
  • ¥20 求:怎么实现qt与pcie通信
  • ¥50 前后端数据顺序不一致问题,如何解决?(相关搜索:数据结构)
  • ¥15 基于蒙特卡罗法的中介效应点估计代码
  • ¥15 罗技G293和UE5.3
  • ¥20 Tesla 特斯拉K80显卡 如果需要使用该设备,你需要禁用系统上的另一个设备。
  • ¥30 QT调用百度智能云千帆模型无法取得返回文本
  • ¥50 CCD工业视觉相机检测出现光边
  • ¥60 二次元手游日常任务自动化代肝(相关搜索:自动化)
  • ¥15 mysql将查询的结果作为动态列名怎么实现