You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用情感分数绘制情感极性图表?

如何利用情感分数绘制情感极性图表?

嗨!我看到你已经成功用TextBlob算出了情感分数,但卡在可视化这一步了——别担心,咱们一步步来搞定它。

首先得提个小细节:你当前的Sentiment_score列存的是元组类型(包含极性polarity和主观性subjectivity两个值),直接绘图会有问题,所以第一步要把这两个值拆分成单独的列,方便后续可视化。

步骤1:拆分情感分数元组

先把元组拆成两列,用pandas的apply(pd.Series)就能轻松搞定:

import pandas as pd  # 如果还没导入的话记得加这句

# 拆分Sentiment_score为极性和主观性列
dataframe_3[['Polarity', 'Subjectivity']] = dataframe_3['Sentiment_score'].apply(pd.Series)

拆分后你就能看到Polarity(范围-1到1,负值=负面,0=中性,正值=正面)和Subjectivity(范围0到1,值越高越主观)两个单独的列了。

步骤2:选择合适的图表类型并绘图

接下来根据你的需求选不同的图表,我给你几个常用的示例:

示例1:单条样本的情感极性柱状图(对应你打印的前20条数据)

如果想直观看到每条表情对应的极性分数,用柱状图最合适:

import matplotlib.pyplot as plt

# 取前20条数据绘图
sample_data = dataframe_3.loc[0:19, ['extracted_emojis', 'Polarity']]

plt.figure(figsize=(12, 6))  # 设置图表大小
plt.bar(sample_data['extracted_emojis'], sample_data['Polarity'], color='skyblue')
plt.title('前20条表情的情感极性')
plt.xlabel('表情')
plt.ylabel('极性分数 (-1=负面,0=中性,1=正面)')
plt.xticks(rotation=45)  # 旋转x轴标签避免重叠
plt.tight_layout()  # 自动调整布局
plt.show()

示例2:整体情感极性的分布直方图

如果想了解所有数据的极性分布(比如大部分是正面还是负面),直方图是不错的选择:

plt.figure(figsize=(8, 5))
plt.hist(dataframe_3['Polarity'], bins=20, color='salmon', edgecolor='black')
plt.title('情感极性整体分布')
plt.xlabel('极性分数')
plt.ylabel('样本数量')
plt.axvline(x=0, color='red', linestyle='--', label='中性线')  # 加一条中性参考线
plt.legend()
plt.show()

示例3:情感极性的箱线图(看集中趋势)

如果想快速看出极性的中位数、四分位数和异常值,用箱线图更清晰:

import seaborn as sns  # 需要先安装seaborn:pip install seaborn

plt.figure(figsize=(8, 5))
sns.boxplot(x=dataframe_3['Polarity'], color='lightgreen')
plt.title('情感极性分布箱线图')
plt.xlabel('极性分数')
plt.show()

小提醒

  • 记得先安装需要的库:如果没装matplotlib或seaborn,用pip install matplotlib seaborn就行。
  • 你也可以根据需求调整图表的颜色、大小、标题这些细节,让图表更贴合你的展示场景。

备注:内容来源于stack exchange,提问作者Seundede Godswill Ejueyitchie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:14:30