python - Python:如何在散点图上查找每个点的项目数并生成列表?
问题描述
现在我有一个包含 1206 名参与者的数据集,他们每个人都认可了一定数量的创伤经历和与创伤相关的一些症状。
这是我的数据框的一部分(完整的数据框长 1206 行):
主题ID | PTSD_Symptom_Sum | PTSD_Trauma_Sum |
---|---|---|
1223 | 3 | 5 |
1224 | 4 | 2 |
1225 | 2 | 6 |
1226 | 0 | 3 |
我有两个问题要解决:
- 我能够创建一个散点图,但我无法从该图中看出每个数据点中有多少参与者。有什么简单的方法可以查看每个数据点中的主题数量吗?
我使用此代码创建散点图:
plt.scatter(PTSD['PTSD_Symptom_SUM'], PTSD['PTSD_Trauma_SUM'])
plt.title('Trauma Sum vs. Symptoms')
plt.xlabel('Symptoms')
plt.ylabel('Trauma Sum')
- 我无法成功地列出支持每对项目的人数(症状和创伤编号)。我能够运行此代码来创建每个类别中人数的计数::
count_sum= PTSD['PTSD_SUM'].value_counts()
count_symptom_sum= PTSD['PTSD_symptom_SUM'].value_counts()
print(count_sum)
print(count_symptom_sum)
产生这个输出:
0 379
1 371
2 248
3 130
4 47
5 17
6 11
8 2
7 1
Name: PTSD_SUM, dtype: int64
0 437
1 418
2 247
3 74
4 23
5 4
6 3
Name: PTSD_symptom_SUM, dtype: int64
是否可以更改代码以计算支持每对项目的人数(症状编号和创伤编号)?如果没有,是否有任何功能可以让我这样做?
解决方案
您可以创建一个包含每对计数的新数据集'PTSD_SUM', 'PTSD_Symptom_SUM'
:
counts = PTSD.groupby(by=['PTSD_symptom_SUM', 'PTSD_SUM']).size().to_frame('size').reset_index()
然后像这样使用Seaborn:
import seaborn as sns
sns.scatterplot(data=counts, x="PTSD_symptom_SUM", y="PTSD_SUM", hue="size", size="size")
要获得这样的东西:
推荐阅读
- openlayers - Openlayers 绘制大括号
- qt - QT离线安装程序版本误区
- asp.net - 如何在 Asp.Net web api 2 中使用 api/account/RegisterLogin
- security - 防止 SVG 容易被逆向工程
- android - ConstraintLayout 和 RecyclerView
- python - 用于再训练示例中验证的 TensorFlow 混淆矩阵
- linux - Gnu 汇编器 .data 节值在系统调用后损坏
- django - Django 更新/创建架构
- angular - Angular 5 - 如何从我的 /etc/project/project.config 访问文件
- assembly - idiv 使符号扩展溢出