如何使用Python和词云生成一张高分辨率的图片
How to generate a picture with high resolution using Python and word cloud
我正在研究Python和词云。但是我的图片分辨率很低。例如样本数据为:
import os
import math
from PIL import Image
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator, get_single_color_func
a3='Python Python Python Matplotlib Matplotlib Seaborn Network Plot Violin Chart Pandas Datascience Wordcloud Spider Radar Parrallel Alpha Color Brewer Density Scatter Barplot Barplot Boxplot Violinplot Treemap Stacked Area Chart Chart Visualization Dataviz Donut Pie Time-Series Wordcloud Wordcloud Sankey Bubble'
我的代码是:
building = np.array(Image.open("C://******/house.png"))
wordcloud = WordCloud(background_color="GhostWhite",width=800, height=800, margin=2,collocations=False,
mask=building,font_step=2).generate(a3)
plt.figure(figsize=(10,7), facecolor='k')
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
这是我在代码中使用的房子图片:
那么,这是我的结果:
你可以看到分辨率很低。实际上,这只是一个小样本数据。当我使用我的真实数据时,我有一张比这差得多的图片。
如何提高分辨率?
根据我的观察,你要增加width=800,height=800
和
plt.figure(figsize = (16,9))
适用于 2k 分辨率,或者您可以提高分辨率。
您可以使用方法 to_svg
并获得任意高的分辨率。
with open("Output.svg", "w") as text_file:
text_file.write(wc.to_svg())
通过将这两行附加到此 file 来尝试一个示例,结果非常棒。
我正在研究Python和词云。但是我的图片分辨率很低。例如样本数据为:
import os
import math
from PIL import Image
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator, get_single_color_func
a3='Python Python Python Matplotlib Matplotlib Seaborn Network Plot Violin Chart Pandas Datascience Wordcloud Spider Radar Parrallel Alpha Color Brewer Density Scatter Barplot Barplot Boxplot Violinplot Treemap Stacked Area Chart Chart Visualization Dataviz Donut Pie Time-Series Wordcloud Wordcloud Sankey Bubble'
我的代码是:
building = np.array(Image.open("C://******/house.png"))
wordcloud = WordCloud(background_color="GhostWhite",width=800, height=800, margin=2,collocations=False,
mask=building,font_step=2).generate(a3)
plt.figure(figsize=(10,7), facecolor='k')
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
这是我在代码中使用的房子图片:
那么,这是我的结果:
你可以看到分辨率很低。实际上,这只是一个小样本数据。当我使用我的真实数据时,我有一张比这差得多的图片。
如何提高分辨率?
根据我的观察,你要增加width=800,height=800
和
plt.figure(figsize = (16,9))
适用于 2k 分辨率,或者您可以提高分辨率。
您可以使用方法 to_svg
并获得任意高的分辨率。
with open("Output.svg", "w") as text_file:
text_file.write(wc.to_svg())
通过将这两行附加到此 file 来尝试一个示例,结果非常棒。