Динамически генерировать гистограмму с помощью Python 3 и matplotlib - PullRequest
0 голосов
/ 22 мая 2019

У меня есть этот скрипт на Python 3, который использует модуль «коллекций», чтобы просто распечатывать общие слова в блоке текста и сколько раз эти слова появляются в этом тексте.

    word_counter = collections.Counter(text)
    for word, count in word_counter.most_common(10):
       print(word, ": ", count)

Например, он может распечатать это:

  • красный: 5
  • солнце: 2
  • Планета: 10
  • Луна: 7
  • водород: 22 * ​​1015 *

У меня есть другой скрипт, который использует библиотеку matplotlib и генерирует гистограмму:

    words = ('red', 'Sun', 'planet', 'moon', 'hydrogen')
    y_pos = np.arange(len(words))
    wordCount = [5,2,10,7,22]
    plt.bar(y_pos, wordCount, align='center', alpha=0.5)
    plt.xticks(y_pos, words)
    plt.ylabel('Count')
    plt.title('Common Word Count')
    plt.savefig('wordcount.png')
    plotImage = "wordcount.png"
    htmldata = """
    <div>
        <img src="{plotImage}" />
    </div>""".format(plotImage = plotImage)
    print(htmldata)  

Итак, вы можете видеть, что я помещаю статические данные в этот скрипт для слов и wordCount.

Есть ли способ объединить два моих сценария, чтобы они работали вместе? Таким образом, переменные «words» и «wordCount» будут заполнены данными из цикла «for word, count ...»?

Таким образом, я мог бы передать ему любой текст или параграф, который мне нужен, и не нужно было бы жестко кодировать какие-либо значения.

Я попытался добавить эти две строки в цикле «for word, count ...»:

myWords = myWords + word + ","
myCount += [count]

Но это выдает эту ошибку:

ValueError: несоответствие формы: объекты не могут быть переданы одному форма

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...