自定义和随机字体大小 词云 Python

Custom and random Font Size Wordcloud Python

提问人:m_len_pbs 提问时间:8/7/2023 更新时间:8/7/2023 访问量:35

问:

我有以下问题:我有一个创建词云的现有代码,它工作正常。最初的问题是单词的大小不是随机分布的;我输入的第一个单词最终最大,然后它的大小减小了。但是,我希望尺寸是随机分配的。现在,我想修改我的代码,为几个选定的单词设置特定的字体大小,同时保持其余单词的随机分布。我想确保代码的其他功能保持不变。换句话说,每个单词仍应只出现一次,并且蒙版、颜色和字体的使用应保持不变。

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from PIL import Image


text = "Python  Analyse Hallo "
zweiteilige_woerter = {"Hallo DU", "Deep Learning", "Netzszenarien"}

frequencies = {}
for word in text.split():
    frequencies[word] = frequencies.get(word, 0) + 1

# Verarbeite die Wörter aus der Menge der zweiteiligen Wörter und setze ihre Häufigkeiten in frequencies
for word in zweiteilige_woerter:
    frequencies[word] = frequencies.get(word, 0) + 1

# Erstelle eine quadratische Maske in der gewünschten Größe
width_px = 800
height_px = 800
x, y = np.ogrid[:width_px, :height_px]
mask = (x - width_px//2) ** 2 + (y - height_px//2) ** 2 > (width_px//2) ** 2
mask = 255 * mask.astype(int)

wordcloud = WordCloud(background_color=None, mode="RGBA", contour_color='white', contour_width=0, prefer_horizontal=1.0, font_path='arial', mask=mask, max_font_size=80)


wordcloud.generate_from_frequencies(frequencies=frequencies)

colors = [(100, 30, 10), (0, 0, 0)]   #example, I used different colors, but this is just the kind of 


def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
    return colors[np.random.randint(0, len(colors))]

# Wende die Farben auf die WordCloud an
wordcloud.recolor(color_func=random_color_func)

# Zeige die WordCloud an
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

我尝试了多种方式使用 CHatGBT 以我描述的方式更改我的代码,但我没有任何效果。 问候 玛 琳

python numpy 词云

评论


答: 暂无答案