Не можете да увеличите разделителната способност на изображението в plt.show()
, тъй като това се определя от вашия екран, но можете да увеличите размера. Това му позволява да мащабира, мащабира и т.н. без замъгляване. За да направите това, предайте размерите на WordCloud
, напр.
wordcloud = WordCloud(width=800, height=400).generate(text)
Това обаче само определя размера на изображението, създадено от WordCloud
. Когато покажете това с помощта на matplotlib
, то се мащабира до размера на платното за графика, което е (по подразбиране) около 800x600 и отново губите качество. За да коригирате това, трябва да посочите размера на фигурата, преди да извикате imshow
, напр.
plt.figure( figsize=(20,10) )
plt.imshow(wordcloud)
Правейки това, мога успешно да създам облак от думи с висока разделителна способност 2000x1000.
За втория ви въпрос (премахване на границата) първо можем да зададем границата на черна, така че да е по-малко видима, напр.
plt.figure( figsize=(20,10), facecolor='k' )
Можете също така да намалите размера на рамката, като използвате tight_layout
, напр.
plt.tight_layout(pad=0)
Крайният код:
# Read the whole text.
text = open(path.join(d, 'constitution.txt')).read()
wordcloud = WordCloud(width=1600, height=800).generate(text)
# Open a plot of the generated image.
plt.figure( figsize=(20,10), facecolor='k')
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
Като замените последните два реда със следното, можете да получите крайния резултат, показан по-долу:
plt.savefig('wordcloud.png', facecolor='k', bbox_inches='tight')
![окончателна конституция wordcloud](https://i.stack.imgur.com/d8EJT.png)
person
mfitzp
schedule
01.03.2015