问题描述
Emoji,CNT,Common
369,3988,yes
sosad,2820,yes
agree,1481,no
clown,1273,yes
dead,753,yes
angry,561,no
good,404,yes
agger/dead,317,no
cry,305,yes
smile,300,yes
当我搜索相关信息时,它们只有 1 列。但是,我有一个必须制作词云图片的CSV文件。更重要的是,我需要使用上面的文件来制作更多信息。如果“Common”栏是“yes”,它会显示红色。否则,它将显示黑色。
我搜索了很多信息。他们只有 1 列。然后他们只有一种颜色或随机颜色。
因此,我无法获得尊重。
解决方法
要添加到上一个答案,这是一个示例代码,它将使用 wordcloud 库执行您要求的操作。您需要将 CSV 分成两个字典,一个用于主数据,另一个用于颜色。
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# Load data as pandas dataframe
df = pd.read_csv(csv_file_location)
# Create dictionaries out of the dataframe
records = df.to_dict(orient='records')
data = {x['Emoji']: x['CNT'] for x in records}
colors = {x['Emoji']: x['Common'] for x in records}
# Generate word cloud from frequencies
wc = WordCloud(background_color="white",max_words=1000)
wc.generate_from_frequencies(data)
# Color words depending on the colors dictionary
def color_func(word,**kwargs):
if colors.get(word) == 'yes':
return "rgb(0,255,0)"
else:
return "rgb(255,0)"
wc.recolor(color_func=color_func)
# Show final result
plt.imshow(wc,interpolation="bilinear")
plt.axis("off")
plt.show()
这会给你一个看起来像这样的图片:
,首先你需要正确读取这个 csv 文件,你可以简单地使用 python 的 Pandas 库,如下所示:Reading csv file in python
然后你可以通过安装它来使用python的wordcloud库
pip 安装 wordcloud
关于 wordcloud 的一些很好的例子,请关注 https://github.com/amueller/word_cloud#examples