Sha*_*laj 3 python svg python-2.7 svgwrite
我正在尝试生成由一些硬编码字符串组成的 word_cloud 的 svg(到目前为止,稍后这些字符串将动态生成)。下面是生成word_cloud的Python代码:
from os import path
from wordcloud import WordCloud
d = path.dirname(__file__)
# Read the whole text.
#text = open(path.join(d, 'test.txt')).read()
mytext = ['hello, hi, ibm, pune, hola']
# Generate a word cloud image
wordcloud = WordCloud().generate(text)
import svgwrite
# Display the generated image:
# the matplotlib way:
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
Run Code Online (Sandbox Code Playgroud)
现在,我不想使用 plt.show(),而是想将 wordcloud 变量传递给 svgwrite 方法,如下所示:
svg_document = svgwrite.Drawing(filename = "test-svgwrite.svg",profile = 'full')
svg_document.add(svg_document.text(wordcloud,
insert = (210, 110)))
svg_document.tostring()
svg_document.save()
Run Code Online (Sandbox Code Playgroud)
然而,这个创建的 SVG 不包含任何文字云,只包含文本(如下面的屏幕截图所示): 检查此处的屏幕截图
小智 5
面对使用 matplotlib 的一些问题(它将使用光栅图形与 wordcloud 结合使用,尽管它将保存为“.svg”),我找到了另一种方法
wordcloud = WordCloud()
wordcloud.generate_from_frequencies(frequencies=features)
wordcloud_svg = wordcloud.to_svg(embed_font=True)
f = open("filename.svg","w+")
f.write(wordcloud_svg )
f.close()
Run Code Online (Sandbox Code Playgroud)
embed_font 布尔值可防止单词重叠。此外,您还可以自由地修改 wordcloud_svg 来更改颜色、字体等。它具有类似 xml 的结构(打印它:))
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |