簡體   English   中英

Python:如何找到散點圖上每個點的項目數並生成列表?

[英]Python: How to find the number of items in each point on scatterplot and produce list?

現在我有一個包含 1206 名參與者的數據集,他們每個人都認可了一定數量的創傷經歷和與創傷相關的一些症狀。

這是我的 dataframe 的一部分(完整的 dataframe 長 1206 行):

主題ID PTSD_Symptom_Sum PTSD_Trauma_Sum
1223 3 5
1224 4 2
1225 2 6
1226 0 3

我有兩個問題要解決:

  1. 我能夠創建一個散點圖 plot,但我無法從這個 plot 中看出每個數據點中有多少參與者。 有什么簡單的方法可以查看每個數據點中的受試者數量嗎?

我使用此代碼創建散點圖:

plt.scatter(PTSD['PTSD_Symptom_SUM'], PTSD['PTSD_Trauma_SUM'])
plt.title('Trauma Sum vs. Symptoms')
plt.xlabel('Symptoms')
plt.ylabel('Trauma Sum')

創傷總和的散點圖(按症狀數量)

  1. 我無法成功地列出支持每對項目的人數(症狀和創傷編號)。 我能夠運行此代碼來創建每個類別中人數的計數::
count_sum= PTSD['PTSD_SUM'].value_counts()
count_symptom_sum= PTSD['PTSD_symptom_SUM'].value_counts()

print(count_sum)
print(count_symptom_sum)

這產生了這個 output:

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")

要獲得這樣的東西:

在此處輸入圖像描述

如果我理解正確,您的 dataframe 是:

SubjectID TraumaSum Symptoms
1         1         5
2         3         4
...

所以你只需要: dataset.groupby(by=['PTSD_SUM', 'PTSD_Symptom_SUM']).count()

此行將為您返回每個唯一值的計數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM