File size: 9,984 Bytes
5a8a0ea
 
 
 
 
 
 
 
a4839f9
5a8a0ea
a4839f9
 
 
 
 
 
5a8a0ea
 
 
a4839f9
 
 
5a8a0ea
 
a4839f9
 
5a8a0ea
 
 
 
 
a4839f9
5a8a0ea
 
 
 
 
 
 
 
 
 
a4839f9
 
5a8a0ea
 
 
a4839f9
5a8a0ea
 
a4839f9
 
 
 
5a8a0ea
 
a4839f9
 
 
5a8a0ea
a4839f9
 
 
 
 
 
 
 
 
5a8a0ea
a4839f9
 
 
5a8a0ea
 
a4839f9
 
5a8a0ea
 
 
 
a4839f9
 
5a8a0ea
 
a4839f9
 
 
 
5a8a0ea
 
 
 
 
a4839f9
 
5a8a0ea
 
a4839f9
 
5a8a0ea
 
a4839f9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import gradio as gr
import pandas as pd
import plotly.express as px
import matplotlib.pyplot as plt
import statistics

LIBRARIES = ["ALOY", "APSTUD", "CLI", "TIMOB", "XD"]


def grafico(list_output_mean, list_output_neosp, nome_projeto, pip_choices):
    list_output_mean = [3.152778, 3.375000, 1.423820, 1.052039, 1.297747, 1.224785, 2.250000, 2.375000, 1.540773, 1.847639, 1.491953, 1.052039, 0.983369, 1.669528,
                        1.665236, 1.412554, 1.375000, 1.078326, 1.556330, 1.625000, 1.860515, 1.491953, 1.160944, 1.675966, 1.987661, 2.369099, 1.431867, 1.944742, 2.329399, 1.925429]
    list_output_NEOSP = [3.191631, 3.417342, 1.202562, 0.867979, 1.225224, 1.028501, 2.165318, 2.291910, 1.141041, 1.785504, 1.086850, 0.875381, 0.714992, 1.604599,
                         1.833541, 0.860600, 1.393656, 1.152935, 1.364006, 1.647414, 1.527748, 1.236909, 1.403306, 1.655692, 1.770828, 1.937058, 0.861534, 1.341726, 1.904503, 1.449757]
    list_results = [["Median Regressor", statistics.mean(list_output_mean)], [
        "NEOSP-SVR Regressor", statistics.mean(list_output_NEOSP)]]
    fig, (ax1, ax2) = plt.subplots(1, 2)
    # ax1
    if "Median Regressor" in pip_choices:
        df_list_output_mean = pd.DataFrame(list_output_mean, columns=["MAE"])
        ax1.plot(df_list_output_mean.index,
                 df_list_output_mean["MAE"],  label="Median Regressor")
    if "NEOSP-SVR Regressor" in pip_choices:
        df_list_output_NEOSP = pd.DataFrame(list_output_NEOSP, columns=["MAE"])
        ax1.plot(df_list_output_NEOSP.index,
                 df_list_output_NEOSP["MAE"], label="NEOSP-SVR Regressor")
    ax1.set_xlabel("Index Execução")
    ax1.set_ylabel("MAE")
    ax1.legend()
    # ax2
    if "Median Regressor" or "NEOSP-SVR Regressor" in pip_choices:
        df = pd.DataFrame(list_results, columns=["Model", "MAE"])
    if "Median Regressor" in pip_choices:
        ax2.bar(df["Model"].iloc[[0]], df["MAE"].iloc[[0]])
    if "NEOSP-SVR Regressor" in pip_choices:
        ax2.bar(df["Model"].iloc[[1]], df["MAE"].iloc[[1]])
    if "NEOSP-SVR Regressor" and "NEOSP-SVR Regressor" in pip_choices:
        ax2.bar(df["Model"], df["MAE"])
    if "Median Regressor" or "NEOSP-SVR Regressor" in pip_choices:
        ax2.set_ylabel("MAE Médio")
        ax2.set_xlabel("Modelos")
    # graficos geral
    fig.set_figwidth(15)
    fig.set_figheight(4)
    fig.suptitle("Projeto {}".format(nome_projeto))
    return gr.update(value=plt, visible=True)


def create_pip_plot(libraries, pip_choices):
    if "ALOY" in libraries:
        list_output_ALOY_mean = [3.152778, 3.375000, 1.423820, 1.052039, 1.297747, 1.224785, 2.250000, 2.375000, 1.540773, 1.847639, 1.491953, 1.052039, 0.983369, 1.669528,
                                 1.665236, 1.412554, 1.375000, 1.078326, 1.556330, 1.625000, 1.860515, 1.491953, 1.160944, 1.675966, 1.987661, 2.369099, 1.431867, 1.944742, 2.329399, 1.925429]
        list_output_ALOY_NEOSP = [3.191631, 3.417342, 1.202562, 0.867979, 1.225224, 1.028501, 2.165318, 2.291910, 1.141041, 1.785504, 1.086850, 0.875381, 0.714992, 1.604599,
                                  1.833541, 0.860600, 1.393656, 1.152935, 1.364006, 1.647414, 1.527748, 1.236909, 1.403306, 1.655692, 1.770828, 1.937058, 0.861534, 1.341726, 1.904503, 1.449757]
        return grafico(list_output_ALOY_mean, list_output_ALOY_NEOSP, "ALOY", pip_choices)
    elif "APSTUD" in libraries:
        list_output_APSTUD_mean = [5.405978260869565, 5.619565217391305, 4.4375, 4.580434782608696, 4.5, 3.5016304347826086, 1.945108695652174, 4.5, 6.836956521739131, 5.0, 3.1649456521739134, 3.309239130434783, 2.203804347826087, 3.007336956521739, 4.059782608695652, 3.296467391304348, 2.3084239130434785, 3.4937500000000004, 3.774456521739131, 3.7527173913043477, 5.465217391304348, 4.619565217391304, 4.6603260869565215, 3.0625, 2.0070652173913044, 3.059239130434783, 3.3274041937816334, 3.411279826464208,  3.7968185104844543, 8.73709327548807]
        list_output_APSTUD_NEOSP = [5.41661475603331, 5.503547725525665, 4.415931210782633, 4.545322877373284, 4.536777472583356, 3.362346453641618, 1.9843639160064401, 4.470861996846005, 6.7482924452454744, 5.030760970371084, 3.4920408655032915, 3.246151689153077, 2.279240264502646, 3.0146941161291476, 4.098301193482748, 3.3288198557025104, 2.3172072884716948, 3.54395454745025, 3.7937206634843017, 3.7337097584332075, 5.521106648217923, 4.657538991789229, 4.655121901790425, 3.030783487143312, 2.0003910449758164, 3.029204865355089, 3.4122658576760707, 3.362791681092995, 3.7584358231873463, 8.847135170166245]
        return grafico(list_output_APSTUD_mean, list_output_APSTUD_NEOSP, "APSTUD", pip_choices)
    elif "CLI" in libraries:
        list_output_CLI_mean = [3.073851590106007, 0.8678445229681978, 2.225088339222615, 2.574558303886926, 2.6738515901060067, 1.57773851590106, 1.4724381625441698, 2.221554770318021, 2.5, 1.2190812720848054, 1.6420494699646642, 1.871024734982332, 2.069611307420495, 1.5, 1.9703180212014133,
                                0.39081272084805657, 1.9996466431095405, 1.569257950530035, 1.4, 1.1144876325088338, 1.780565371024735, 0.9583038869257952, 1.63321554770318, 1.673317683881064, 2.0082159624413145, 1.9530516431924885, 2.335680751173709, 2.6815336463223787, 1.2699530516431925, 1.4428794992175273]
        list_output_CLI_NEOSP = [3.1538037286288505, 0.937225588342782, 2.1037834307438303, 2.7185375907916134, 2.705821416930853, 1.5651596557303535, 1.1630692970019907, 2.373780602244225, 2.642528080865694, 0.8917870166563835, 1.9119725116172384, 1.895509058775452, 2.2941219868278147, 1.5548661959529118,
                                 2.018983040645479, 0.3002212060779503, 1.8850529066288408, 1.417942660377745, 1.3788045174949335, 1.0137659071118208, 1.4936335189563361, 0.82267957042595,  1.1580797095299311, 1.0556058690485837, 1.7453689640857384, 1.5028556447190604, 2.098886003603931, 2.7192884860222506, 1.1056835708897894, 1.4314289365223634]
        return grafico(list_output_CLI_mean, list_output_CLI_NEOSP, "CLI", pip_choices)
    elif "TIMOB" in libraries:
        list_output_TIMOB_mean = [3.1239187095524747, 3.1127719364782216, 2.558648911447154, 3.275111760244016, 2.7384507690073105, 2.8920827752045573, 3.2534940206252116, 2.50271533011636, 2.9008521214273033, 1.9765121927601954, 2.982737682165163,  2.2250455917240934, 2.531187967012572,  1.9724129722576376,2.572886238561722,  1.768976730007113, 1.9037841682755818, 1.9127182196931205, 2.2375632557666902, 2.007052128848694, 2.139313077939234, 1.9027192358500153, 1.9491901229549842, 2.4138766385529924, 2.830769230769231, 3.545076719845544, 2.7588862920434916, 2.4929051925617314, 2.0218412762930593, 1.7311899197236056]
        list_output_TIMOB_NEOSP = [3.2116159862462017, 3.196289117071299, 2.601474470400067, 3.230862677831728, 2.7402567260480617, 2.8941668879031033, 3.175745376388647, 2.4568824875229156,2.7798433043457753, 1.9535065063757133, 2.9351616923433395, 2.1850743809068365, 2.5550886930385746, 1.9154545407712529, 2.535058252004109, 1.702317100676495, 1.8854684307156933, 1.8659555544639181, 2.2476178674129246, 1.9931473638829218,2.114301637093706, 1.8737288562148644, 1.9429539400920888, 2.438826335039037, 2.8242363751209285, 3.5705528249103615, 2.773252222649539, 2.473583571405169, 1.9530287330281475, 1.687719204969839]
        return grafico(list_output_TIMOB_mean, list_output_TIMOB_NEOSP, "TIMOB", pip_choices)
    elif "XD" in libraries:
        list_output_XD_mean = [2.5098978288633456, 1.7606764928193497, 1.4100529100529098, 2.6373771730914592, 2.5485166288737724, 2.076861300075586, 2.671485260770975, 1.9914021164021165, 2.3930461073318217, 1.8410336356764927, 2.5883408919123205, 2.4966458805744516, 2.603505291005291, 2.162556689342404, 1.3380102040816326, 1.7609126984126984, 1.6026549508692367, 2.5393046107331823, 1.2452286470143614, 1.1508408919123203, 2.3851095993953133, 1.9365079365079363, 1.6403061224489799, 1.4609788359788356, 1.576436130007559, 1.5469576719576719, 1.618433484504913, 1.6909486016628874, 1.581396447467876, 1.61432350718065]
        list_output_XD_NEOSP = [2.153805854606099, 1.3192041744638385, 1.0942568392224865, 2.2671338260999296, 2.2102113658193114, 1.442994939935334, 2.7211806574599327, 1.8784392297541839, 2.516598063436293, 1.8653002237732397, 2.658988020074318, 2.3855459818822085, 2.901597886872319, 2.035113280848767, 1.246124495922638, 1.7778479249011316, 1.4536318108060204, 2.661901532686688, 1.122781370408799, 1.1549609661487965, 2.3562297342031937, 1.5516294190980484, 1.4237175549652095, 1.5386608172757934, 1.4927757348680346, 1.5466779395447403, 1.543884232353307, 1.58210055276562, 1.3658819428699331, 1.3094895420260841]
        return grafico(list_output_XD_mean, list_output_XD_NEOSP, "XD", pip_choices)
    else:
        return gr.update(visible=True)


with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column():
            gr.Markdown("## Conjunto de Dados")
            libraries = gr.Dropdown(
                choices=LIBRARIES, label="Projeto", value="ALOY")
        with gr.Column():
            gr.Markdown("## Gráficos")
            pip = gr.CheckboxGroup(
                choices=["Median Regressor", "NEOSP-SVR Regressor"], label="Modelos Preditivos")
            # stars = gr.CheckboxGroup(choices=["Stars", "Week over Week"], label="")
            # issues = gr.CheckboxGroup(choices=["Issue", "Exclude org members", "week over week"], label="")
    with gr.Row():
        fetch = gr.Button(value="Fetch")
    with gr.Row():
        with gr.Column():
            pip_plot = gr.Plot(visible=False)
            # star_plot = gr.Plot(visible=False)
            # issue_plot = gr.Plot(visible=False)

    fetch.click(create_pip_plot, inputs=[libraries, pip], outputs=pip_plot)
    # fetch.click(create_star_plot, inputs=[libraries, pip], outputs=star_plot)
    # fetch.click(create_issue_plot, inputs=[libraries, issues], outputs=issue_plot)

if __name__ == "__main__":
    demo.launch()