Колба визуализации слово облако - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь отобразить облако слов, которое можно запустить на моем компьютере без колбы.

Я использую этот вопрос в качестве основы

Маршрут

@app.route('/wordcloud/<vendor_duns>')
def images(vendor_duns):
    words = Words.query.filter(Words.vendor_duns == vendor_duns).with_entities(Words.words).all()
    # t = [r.__dict__ for r in words]
    # print(t)
    one_row = list(itertools.chain.from_iterable(words))
    text = ' '.join(one_row)
    return render_template("wordcloud.html", text=text)


@app.route('/fig/<vendor_duns>')
def fig(vendor_duns):
    # TODO add test model and query
    words = Words.query.filter(Words.vendor_duns == vendor_duns).with_entities(Words.words).all()
    one_row = list(itertools.chain.from_iterable(words))
    text = ' '.join(one_row)
    wordcloud = WordCloud().generate(text)
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis("off")
    img = BytesIO()
    plt.savefig(img)
    img.seek(0)
    return send_file(img, mimetype='image/png')

Template

{% extends "base.html" %}

{% block title %}Wordcloud{% endblock %}
{% block content %}  
{{text}}
    <div>
      <img src="{{ url_for('sam.fig', vendor_duns=vendor_duns) }}" alt="Image Placeholder" height="100">
    </div>
{% endblock %}

Прежде всего {{text}} в шаблоне только для просмотра. Если я перейду к определенному vendor_duns, я получу длинную строку текста, но без изображения.

Итак, два вопроса, где именно мне нужно выполнить запрос? в fig или изображении function.

Второй вопрос, я получаю пустое изображение, поэтому я точно не знаю, как записать облако слов в буфер.

1 Ответ

0 голосов
/ 10 мая 2018

wordcloud to_image метод создает объект PIL, поэтому все, что вам нужно сделать, это просто вызвать метод save PIL.

img = BytesIO()
wordcloud.to_image().save(img, 'PNG')
img.seek(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...