Вы не можете увеличить разрешение изображения в 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