generating word cloud for items in a list in python

pyd picture pyd · Aug 9, 2017 · Viewed 15.2k times · Source
 my_list=["one", "one two", "three"]

and I am generating a word cloud for this list by using

 wordcloud = WordCloud(width = 1000, height = 500).generate(" ".join(my_list))

As I am converting all the items into string it is generating word cloud for

   "one","two","three"

 But I want to generate word cloud for the values, "one","one two","three"

help me for generating word cloud for items in a list

Answer

pyd picture pyd · Jun 7, 2018

one way of doing,

import matplotlib.pyplot as plt

#convert list to string and generate
unique_string=(" ").join(my_list)
wordcloud = WordCloud(width = 1000, height = 500).generate(unique_string)
plt.figure(figsize=(15,8))
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("your_file_name"+".png", bbox_inches='tight')
plt.show()
plt.close()

Another way by creating Counter Dictionary,

#convert it to dictionary with values and its occurences
from collections import Counter
word_could_dict=Counter(my_list)
wordcloud = WordCloud(width = 1000, height = 500).generate_from_frequencies(word_could_dict)

plt.figure(figsize=(15,8))
plt.imshow(wordcloud)
plt.axis("off")
#plt.show()
plt.savefig('yourfile.png', bbox_inches='tight')
plt.close()