import os # matplot view/windows import matplotlib matplotlib.interactive(True) # pd display import pandas as pd pd.set_option('display.max_colwidth', 100) from analysis.archive import Archive from analysis.query import Query from analysis.plot import Plot import analysis.format # spectre: slategrey # nettime: red # crumb: purple # empyre: darkblue def save_fig_cohort(q, name, dir, color): t = name + " - Cohorts" pp = q.cohort().plot(color=color, title=t) ts = name + "_cohorts.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def save_fig_messages_total(q, name, dir, color): t = name + " - Nbr. Messages" pp = q.activity_overall().plot(kind='bar', color=color, title=t) ts = name + "_messages.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def save_fig_threads_total(q, name, dir, color): t = name + " - Nbr. Threads" pp = q.threads_overall().plot(kind='bar', color=color, title=t) ts = name + "_threads.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def save_fig_messages_constituency(q, name, dir): t = name + " - Messages Constituency" replies = pd.Series(q.replies_overall(series=True)) # threads = pd.Series(q.single_threads_overall(series=True)) threads = pd.Series(q.threads_overall(series=True)) messages = pd.Series(q.activity_overall(series=True)) single_messages = messages - (replies + threads) # df = {'a': single_messages, 'b': threads, 'c': replies} # df = pd.DataFrame([single_messages, threads, replies], columns=['a', 'b', 'c']) df = pd.concat([single_messages.to_frame('single-messages').astype(int), threads.to_frame('threads').astype(int), replies.to_frame('replies').astype(int)], axis=1) pp = df.plot(kind='bar', stacked=True, title=t) # pp = [single_messages, threads, replies].plot(kind='bar', stacked=True) ts = name + "_constituency.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def save_fig_avg_threads_replies(q, name, dir, color): t = name + " - Avg. Threads + Replies" replies = pd.Series(q.replies_overall(series=True)) threads = pd.Series(q.threads_overall(series=True)) messages = pd.Series(q.activity_overall(series=True)) avg_threads_messages = (replies + threads) / messages pp = pd.DataFrame(avg_threads_messages).plot(kind='bar', color=color, title=t) ts = name + "_avg_threads_replies.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def save_fig_diff_threads_replies_vs_messages(q, name, dir, color): t = name + " - Diff. Threads + Replies vs Single Messages" replies = pd.Series(q.replies_overall(series=True)) threads = pd.Series(q.threads_overall(series=True)) rt = replies + threads messages = pd.Series(q.activity_overall(series=True)) diff_threads_messages = (2 * rt) - messages pp = pd.DataFrame(diff_threads_messages).plot(kind='bar', color=color, title=t) ts = name + "_diff_threads_replies_messages.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def save_fig_ratio_replies_threads(q, name, dir, color): t = name + " - Ratio Replies per Thread" replies = pd.Series(q.replies_overall(series=True)) threads = pd.Series(q.threads_overall(series=True)) ratio_replies_threads = replies / threads pp = pd.DataFrame(ratio_replies_threads).plot(kind='bar', color=color, title=t) ts = name + "_ratio_replies_threads.png" filename = os.path.join(dir, ts) pp.get_figure().savefig(filename) def html_td_rank_year(year, data): td_str = '
| year | ' html_str += 'nettime | ' html_str += 'crumb | ' html_str += 'spectre | ' html_str += 'empyre | ' html_str += '
| ' + i + ' | ' html_str += html_td_rank_year(i, ranking_nettime) html_str += html_td_rank_year(i, ranking_crumb) html_str += html_td_rank_year(i, ranking_spectre) html_str += html_td_rank_year(i, ranking_empyre) html_str += '