reab5555 commited on
Commit
ebdd8fa
·
verified ·
1 Parent(s): 6b20aae

Update visualization.py

Browse files
Files changed (1) hide show
  1. visualization.py +13 -8
visualization.py CHANGED
@@ -27,7 +27,7 @@ def create_radar_chart(data, title):
27
  )
28
  return fig
29
 
30
- def update_visibility_and_charts(status, exec_time, lang, transcription, attachments_data, bigfive_data, personalities_data, chart_data):
31
  outputs = [
32
  gr.update(value=status, visible=True),
33
  gr.update(value=exec_time, visible=True),
@@ -35,13 +35,17 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
35
  gr.update(value=transcription, visible=True),
36
  ]
37
 
38
- sorted_speakers = sorted(chart_data.keys())
 
39
 
40
- for speaker in sorted_speakers[:2]: # Limit to 2 speakers
 
 
 
41
  speaker_outputs = []
42
 
43
  # Attachments
44
- attachment_data = attachments_data.get(f"Speaker: {speaker}", {}) or attachments_data.get(speaker, {})
45
  if attachment_data:
46
  attachment_chart_data = {k: v for k, v in attachment_data.items() if k in ["Secured", "Anxious-Preoccupied", "Dismissive-Avoidant", "Fearful-Avoidant"]}
47
  attachment_chart = create_bar_chart(attachment_chart_data, f"Attachments Analysis - {speaker}")
@@ -57,7 +61,7 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
57
  speaker_outputs.extend([gr.update(visible=False)] * 3)
58
 
59
  # Big Five
60
- bigfive_data_speaker = bigfive_data.get(f"Speaker: {speaker}", {}) or bigfive_data.get(speaker, {})
61
  if bigfive_data_speaker:
62
  bigfive_chart_data = {k: v for k, v in bigfive_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
63
  bigfive_chart = create_bar_chart(bigfive_chart_data, f"Big Five Analysis - {speaker}")
@@ -69,7 +73,7 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
69
  speaker_outputs.extend([gr.update(visible=False)] * 2)
70
 
71
  # Personalities
72
- personalities_data_speaker = personalities_data.get(f"Speaker: {speaker}", {}) or personalities_data.get(speaker, {})
73
  if personalities_data_speaker:
74
  personalities_chart_data = {k: v for k, v in personalities_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
75
  personalities_chart = create_bar_chart(personalities_chart_data, f"Personalities Analysis - {speaker}")
@@ -82,14 +86,15 @@ def update_visibility_and_charts(status, exec_time, lang, transcription, attachm
82
 
83
  outputs.extend(speaker_outputs)
84
 
85
- # Hide unused speaker components if there's only one speaker
86
- if len(sorted_speakers) == 1:
87
  outputs.extend([gr.update(visible=False)] * 7) # 7 components per speaker
88
 
89
  print("Debug: Attachments Data:", attachments_data)
90
  print("Debug: Big Five Data:", bigfive_data)
91
  print("Debug: Personalities Data:", personalities_data)
92
  print("Debug: Chart Data:", chart_data)
 
93
 
94
  return outputs
95
 
 
27
  )
28
  return fig
29
 
30
+ def update_visibility_and_charts(status, exec_time, lang, transcription, attachments_data, bigfive_data, personalities_data, chart_data, max_speakers):
31
  outputs = [
32
  gr.update(value=status, visible=True),
33
  gr.update(value=exec_time, visible=True),
 
35
  gr.update(value=transcription, visible=True),
36
  ]
37
 
38
+ # Collect all unique speaker names from all datasets
39
+ all_speakers = set(attachments_data.keys()) | set(bigfive_data.keys()) | set(personalities_data.keys()) | set(chart_data.keys())
40
 
41
+ # Sort speakers and limit to max_speakers (up to 3)
42
+ sorted_speakers = sorted(all_speakers)[:min(max_speakers, 3)]
43
+
44
+ for speaker in sorted_speakers:
45
  speaker_outputs = []
46
 
47
  # Attachments
48
+ attachment_data = attachments_data.get(speaker, {})
49
  if attachment_data:
50
  attachment_chart_data = {k: v for k, v in attachment_data.items() if k in ["Secured", "Anxious-Preoccupied", "Dismissive-Avoidant", "Fearful-Avoidant"]}
51
  attachment_chart = create_bar_chart(attachment_chart_data, f"Attachments Analysis - {speaker}")
 
61
  speaker_outputs.extend([gr.update(visible=False)] * 3)
62
 
63
  # Big Five
64
+ bigfive_data_speaker = bigfive_data.get(speaker, {})
65
  if bigfive_data_speaker:
66
  bigfive_chart_data = {k: v for k, v in bigfive_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
67
  bigfive_chart = create_bar_chart(bigfive_chart_data, f"Big Five Analysis - {speaker}")
 
73
  speaker_outputs.extend([gr.update(visible=False)] * 2)
74
 
75
  # Personalities
76
+ personalities_data_speaker = personalities_data.get(speaker, {})
77
  if personalities_data_speaker:
78
  personalities_chart_data = {k: v for k, v in personalities_data_speaker.items() if k not in ["explanation"] and isinstance(v, (int, float))}
79
  personalities_chart = create_bar_chart(personalities_chart_data, f"Personalities Analysis - {speaker}")
 
86
 
87
  outputs.extend(speaker_outputs)
88
 
89
+ # Hide unused speaker components
90
+ for _ in range(3 - len(sorted_speakers)):
91
  outputs.extend([gr.update(visible=False)] * 7) # 7 components per speaker
92
 
93
  print("Debug: Attachments Data:", attachments_data)
94
  print("Debug: Big Five Data:", bigfive_data)
95
  print("Debug: Personalities Data:", personalities_data)
96
  print("Debug: Chart Data:", chart_data)
97
+ print("Debug: Sorted Speakers:", sorted_speakers)
98
 
99
  return outputs
100