weixin_58617674 2024-03-05 20:19 采纳率: 0%
浏览 7

词云图为什么生成没有蒙版和文字?

想问一下为什么词云图显示运行成功,但是却没有文字显示,只有方形的背景,也没有蒙版图案

img

显示这个 [42S22][1054] Unknown column 'missing_value' in 'field list'问题,但是我检查了数据库和列名都没有错
代码如下:

import jieba
from PIL.ImageColor import colormap
from matplotlib import pylab as plt
from wordcloud import WordCloud,ImageColorGenerator
import numpy as np
from imageio import imread
from PIL import Image
from pymysql import *
import json


def get_img(cname,targetImageSrc,resImageSrc):
    con=connect(host='localhost',user='root',password='******',database='stockdata',port=3306,charset='utf8')
    cusor=con.cursor()
    sql = f"select cname from stockinfom"
    cusor.execute(sql)
    data=cusor.fetchall()

    text=''
    for i in data:
        if i[0] !='':
            tagArr=i
            for j in tagArr:
                text +=j
    cusor.close()
    con.close()
    data_cut=jieba.cut(text,cut_all=False)
    string=''.join(data_cut)

    #图片
    img =Image.open(targetImageSrc)
    img_arr =np.array(img)
    wc = WordCloud(
        font_path='Deng.ttf',
        mask=img_arr,
        background_color='#97e2f5',
        # mask = backgroud_Image,  # 设置背景图片
        colormap = 'Accent',  # 设置文字颜色
    )
    wc.generate_from_text(string)
    #绘制图片
    # image_colors = ImageColorGenerator(img_arr)  # 获取color
    # plt.imshow(wc.recolor(color_func=image_colors),
    #            interpolation="bilinear")  # 按照给定的图片颜色布局生成字体颜色,当wordcloud尺寸比image大时,返回默认的颜色

    fig=plt.figure(1)


    plt.axis('off')
    plt.imshow(wc)
    plt.savefig(resImageSrc,dpi=800)


get_img('cname','./big-screen-vue-datav-master/public/jiadian.png','./big-screen-vue-datav-master/public/Jiadian.png')



  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-03-05 20:25
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    问题分析: 根据您描述的问题,词云图生成成功但没有文字显示且没有蒙版图案,同时报错信息为[42S22][1054] Unknown column 'missing_value' in 'field list'。首先需要分析可能导致这些问题的原因。

    1. 文字显示问题:可能原因是生成词云图时没有正确提取到有效的文本数据,导致生成的词云图没有文字显示。这可能是由于数据提取或处理过程中出现了错误。
    2. 蒙版图案问题:在生成词云图时,使用了蒙版图案来控制文字的分布,但可能未正确加载或处理蒙版图案,导致词云图没有按照预期的形状显示。
    3. 报错信息问题:报错信息[42S22][1054] Unknown column 'missing_value' in 'field list'指出在数据库查询中出现了未知的列名错误,可能是由于SQL语句中的列名与数据库中的列名不匹配导致的。
      解决方案:
    4. 文字显示问题解决方案:检查数据提取和处理过程中的代码,确保正确提取到了有效的文本数据。您的代码中使用了MySQL数据库,因此需要确保数据库连接和查询过程正确,并且确保查询结果中包含有效的文本数据。
    5. 蒙版图案问题解决方案:检查蒙版图案的加载和处理代码,确保正确加载了蒙版图案,并且将其传递给了词云生成函数。
    6. 报错信息问题解决方案:检查数据库查询的SQL语句,确保列名与数据库中的列名匹配。报错信息中提到的列名missing_value可能是在查询中错误地使用了未知的列名,需要检查并修正对应的代码。
      修改代码如下:
      pythonCopy code
      import jieba
      from PIL import Image
      import numpy as np
      from wordcloud import WordCloud
      # 数据库查询部分修改
      from pymysql import connect
      def get_text_from_database():
      con = connect(host='localhost', user='root', password='******', database='stockdata', port=3306, charset='utf8')
      cursor = con.cursor()
      sql = "select cname from stockinfom"
      cursor.execute(sql)
      data = cursor.fetchall()
      text = ''
      for row in data:
      if row[0] != '':
      text += row[0]
      cursor.close()
      con.close()
      return text
      # 生成词云部分修改
      def generate_wordcloud(text, mask_path, font_path, save_path):
      mask = np.array(Image.open(mask_path))
      wc = WordCloud(font_path=font_path, mask=mask, background_color='white')
      wc.generate(text)
      wc.to_file(save_path)
      # 主函数调用
      def main():
      text = get_text_from_database()
      mask_path = './big-screen-vue-datav-master/public/jiadian.png'
      font_path = 'Deng.ttf'
      save_path = './big-screen-vue-datav-master/public/Jiadian_wordcloud.png'
      generate_wordcloud(text, mask_path, font_path, save_path)
      if __name__ == "__main__":
      main()
      
      上述代码中,修改了数据库查询部分以及生成词云部分的代码,确保正确从数据库中提取文本数据,并使用蒙版图案生成词云图。同时,修改了数据库查询的SQL语句,确保与数据库中的列名匹配。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    评论

报告相同问题?

问题事件

  • 创建了问题 3月5日

悬赏问题

  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求