@@ -193,7 +193,7 @@ def generateHours():
193
193
# I will figure this out someday...
194
194
195
195
196
- print ("----" )
196
+ # print("----")
197
197
if not os .path .isdir ("data" ):
198
198
os .mkdir ("data" )
199
199
@@ -214,7 +214,8 @@ def generateHours():
214
214
try :
215
215
date_list .append (person [x ])
216
216
except KeyError as k :
217
- print (k )
217
+ #print(k)
218
+ pass
218
219
proc_msg .append (date_list )
219
220
220
221
for row in proc_msg :
@@ -303,47 +304,117 @@ def generateHours():
303
304
for row in proc_msg :
304
305
writer .writerow (row )
305
306
306
- wordcloud = WordCloud (width = 1600 , height = 800 , font_path = 'HanyiSentyRubber.ttf' ,relative_scaling = 0.69 , colormap = 'winter' ,min_font_size = 10 , background_color = "white" ).generate_from_frequencies (first_msg_contents )
307
+ with open ("data/first_msg_contents.csv" , 'w' , encoding = 'utf-8-sig' , newline = '' ) as file :
308
+ writer = csv .writer (file )
309
+ headers = ["Phrase" , "Frequency" ]
310
+ writer .writerow (headers )
311
+ for row in first_msg_contents :
312
+ writer .writerow (row )
313
+
314
+ with open ("data/all_word_freq.csv" , 'w' , encoding = 'utf-8-sig' , newline = '' ) as file :
315
+ writer = csv .writer (file )
316
+ headers = ["Phrase" , "Frequency" ]
317
+ writer .writerow (headers )
318
+ for row in all_word_freq :
319
+ # print(row)
320
+ writer .writerow ([row , all_word_freq [row ]])
321
+
322
+
323
+ stop = ["动画表情" , "图片" ] # I will implement this later
324
+
325
+ wordcloud = WordCloud (width = 3840 , height = 2160 , font_path = 'HanyiSentyRubber.ttf' , colormap = 'winter' , background_color = "white" ).generate_from_frequencies (first_msg_contents )
307
326
wordcloud .to_file ("data/first_msg_contents.png" )
308
327
309
- wordcloud = WordCloud (width = 1600 , height = 800 , font_path = 'HanyiSentyRubber.ttf' , colormap = 'winter' , min_font_size = 7 ,background_color = "white" ).generate_from_frequencies (all_word_freq )
328
+ wordcloud = WordCloud (width = 3840 , height = 2160 , font_path = 'HanyiSentyRubber.ttf' , colormap = 'winter' ,background_color = "white" ).generate_from_frequencies (all_word_freq )
310
329
wordcloud .to_file ("data/all_msg_contents.png" )
311
330
312
- color_scheme = ["#003f5c" ,"#bc5090" ,"#ffa600" , "#58508d" ]
331
+ from heapq import nlargest
332
+
333
+ color_scheme = ["#fd7f6f" , "#7eb0d5" , "#b2e061" , "#bd7ebe" , "#ffb55a" , "#ffee65" , "#beb9db" , "#fdcce5" , "#8bd3c7" ]
334
+ all_word_freq_tracedata = []
335
+ most_frequent_words = nlargest (50 , all_word_freq , key = all_word_freq .get )
336
+ word_freq = []
337
+ for word in most_frequent_words :
338
+ word_freq .append (all_word_freq [word ])
339
+
340
+ all_word_freq_trace = go .Bar (
341
+ x = list (most_frequent_words ),
342
+ y = list (word_freq ),
343
+ marker = dict (
344
+ color = random .choice (color_scheme ),
345
+ )
346
+ )
347
+ all_word_freq_tracedata .append (all_word_freq_trace )
348
+
349
+ all_word_freq_bar = go .Figure (
350
+ data = all_word_freq_tracedata ,
351
+ layout_title_text = "All word frequency"
352
+ )
353
+
354
+ first_word_freq_tracedata = []
355
+ most_frequent_words = nlargest (50 , first_msg_contents , key = first_msg_contents .get )
356
+ word_freq = []
357
+ for word in most_frequent_words :
358
+ word_freq .append (first_msg_contents [word ])
359
+
360
+ first_word_freq_trace = go .Bar (
361
+ x = list (most_frequent_words ),
362
+ y = list (word_freq ),
363
+ marker = dict (
364
+ color = random .choice (color_scheme ),
365
+ )
366
+ )
367
+ first_word_freq_tracedata .append (first_word_freq_trace )
368
+
369
+ first_word_freq_bar = go .Figure (
370
+ data = first_word_freq_tracedata ,
371
+ layout_title_text = "First message word frequency"
372
+ )
373
+
313
374
total_daily_messages_tracedata = []
314
375
for u in users :
376
+ c = random .choice (color_scheme )
315
377
trace = go .Bar (
316
378
x = list (daily_msg [u ].keys ()),
317
379
y = list (daily_msg [u ].values ()),
318
380
name = f'by { u } ' ,
319
381
marker = dict (
320
- color = random . choice ( color_scheme ) ,
382
+ color = c ,
321
383
)
322
384
)
385
+ color_scheme .remove (c )
323
386
total_daily_messages_tracedata .append (trace )
324
387
325
388
total_daily_messages = go .Figure (
326
389
data = total_daily_messages_tracedata ,
327
390
layout_title_text = "Total Daily Messages"
328
391
)
329
392
393
+ color_scheme = ["#003f5c" ,"#58508d" ,"#bc5090" , "#ff6361" , "#ffa600" ]
330
394
monthly_first_msg_tracedata = []
395
+ #print(monthly_first_msg)
331
396
for u in users :
397
+ if u not in monthly_first_msg :
398
+ continue
399
+ c = random .choice (color_scheme )
332
400
trace = go .Bar (
333
401
x = list (monthly_first_msg [u ].keys ()),
334
402
y = list (monthly_first_msg [u ].values ()),
335
403
name = f'by { u } ' ,
336
404
marker = dict (
337
- color = random . choice ( color_scheme ) ,
405
+ color = c ,
338
406
)
339
407
)
408
+ color_scheme .remove (c )
340
409
monthly_first_msg_tracedata .append (trace )
341
410
342
411
monthly_first_message = go .Figure (
343
412
data = monthly_first_msg_tracedata ,
344
413
layout_title_text = "Monthly First Message"
345
414
)
346
415
416
+ all_word_freq_bar .show ()
417
+ first_word_freq_bar .show ()
347
418
total_daily_messages .show ()
348
419
monthly_first_message .show ()
349
420
0 commit comments