[数据可视化] 词云(Word Cloud)

词云介绍

词云,又称文字云,是文本数据的视觉表示,由词汇组成类似云的彩色图形,用于展示大量文本数据。每个词的重要性以字体大小或颜色显示

词云(Word Cloud)主要用来做文本内容关键词出现的频率分析,适合文本内容挖掘的可视化。词云中出现频率较高的词会以较大的形式呈现出来,出现频率较低的词会以较小的形式呈现

词云的本质是点图,是在相应坐标点绘制具有特定样式的文字的结果

功能:对比文字的重要程度,快速感知最突出的文字

适合的数据条数:超过30条数据

练习案例:使用Power BI制作词云图

数据源(部分截图)

制图要点:引入自定义视觉对象Word Cloud,设置类别(Category)数值(Values)两个参数

具体操作步骤如下所示

步骤1:将上述数据导入进Power BI进行数据清洗以及数据建模后,单击"可视化"窗格中的"..."

选择"获取更多视觉对象",输入"Word Cloud",引入词云

选择相应字段,然后调整可视化图表的格式,结果如下图所示

从词云展示的结果可以看出内外胎、脚踏板等销量最高

注意

1.当数据的区分度不大时使用词云起不到突出的效果

2.当数据太少时很难布局出好看的词云,推荐使用柱状图

词云适合大量数据,柱状图适合少量数据

词云展示文字更为直观,柱状图需要借助坐标轴和刻度表示文字的分类和数据

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装一些必要的库,如 requests, BeautifulSoup, pandas, matplotlib 和 wordcloud。你可以通过以下命令来安装它们: ```python pip install requests beautifulsoup4 pandas matplotlib wordcloud ``` 然后,你可以使用以下代码来爬取《肖申克的救赎》的影评数据: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 发起请求并获取页面内容 url = 'https://movie.douban.com/subject/1292052/reviews' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) content = response.text # 使用BeautifulSoup解析页面内容 soup = BeautifulSoup(content, 'html.parser') reviews = soup.find_all('div', class_='review-item') # 提取评论数据 data = [] for review in reviews: rating = review.find('span', class_='rating')['title'] if review.find('span', class_='rating') else '' comment = review.find('div', class_='short-content').text.strip() data.append({'rating': rating, 'comment': comment}) # 将数据转换为DataFrame df = pd.DataFrame(data) # 保存数据为CSV文件 df.to_csv('reviews.csv', index=False) ``` 接下来,你可以使用以下代码进行数据可视化分析: ```python import pandas as pd import matplotlib.pyplot as plt from wordcloud import WordCloud # 加载评论数据 df = pd.read_csv('reviews.csv') # 绘制评论数量趋势图 df['date'] = pd.to_datetime(df['date']) df['date'].value_counts().sort_index().plot(kind='line') plt.xlabel('Date') plt.ylabel('Number of Comments') plt.title('Trend of Comment Quantity') plt.show() # 绘制评论时间分布图 df['hour'] = df['date'].dt.hour df['hour'].value_counts().sort_index().plot(kind='bar') plt.xlabel('Hour') plt.ylabel('Number of Comments') plt.title('Distribution of Comment Time') plt.show() # 绘制评分分布图 df['rating'].value_counts().sort_index().plot(kind='bar') plt.xlabel('Rating') plt.ylabel('Number of Comments') plt.title('Distribution of Ratings') plt.show() # 生成高分评论词云 high_rating_comments = ' '.join(df[df['rating'] >= 8]['comment']) wordcloud = WordCloud(background_color='white').generate(high_rating_comments) plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.title('Word Cloud of High Rating Comments') plt.show() # 生成低分评论词云 low_rating_comments = ' '.join(df[df['rating'] <= 3]['comment']) wordcloud = WordCloud(background_color='white').generate(low_rating_comments) plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.title('Word Cloud of Low Rating Comments') plt.show() ``` 以上就是整体的思路,你可以将代码保存为一个.py文件,然后运行它来进行数据采集和可视化分析。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值