From 49ec3a00bd3532ca50f45611bd21d984521ce633 Mon Sep 17 00:00:00 2001 From: anjali Date: Thu, 13 May 2021 22:13:13 +0530 Subject: [PATCH] Reformat files...... --- py-scripts/lf_graph.py | 184 +++++++++++++++++------------------ py-scripts/lf_report_test.py | 98 +++++++++---------- 2 files changed, 138 insertions(+), 144 deletions(-) diff --git a/py-scripts/lf_graph.py b/py-scripts/lf_graph.py index f548bfa2..2462e0e8 100755 --- a/py-scripts/lf_graph.py +++ b/py-scripts/lf_graph.py @@ -18,47 +18,45 @@ COPYWRITE INCLUDE_IN_README ''' -import matplotlib.pyplot as plt -import matplotlib as mpl -import numpy as np +import matplotlib.pyplot as plt +import matplotlib as mpl +import numpy as np import pandas as pd import pdfkit import math from matplotlib.colors import ListedColormap + # internal candela references included during intial phases, to be deleted at future date # graph reporting classes class lf_bar_graph(): - def __init__(self, - _data_set= [[30,55,69,37],[45,67,34,22],[22,45,12,34]], - _xaxis_name="x-axis", - _yaxis_name="y-axis", - _xaxis_categories=[1,2,3,4], - _graph_image_name="image_name", - _label=["bi-downlink", "bi-uplink",'uplink'], - _color=None, - _bar_width=0.25, - _color_edge='grey', - _font_weight='bold', - _color_name=['lightcoral','darkgrey','r','g','b','y'], - _figsize=(10,5), - _dpi=96): - - self.data_set=_data_set - self.xaxis_name=_xaxis_name - self.yaxis_name=_yaxis_name - self.xaxis_categories=_xaxis_categories - self.graph_image_name=_graph_image_name - self.label=_label - self.color=_color - self.bar_width=_bar_width - self.color_edge=_color_edge - self.font_weight=_font_weight - self.color_name=_color_name - self.figsize=_figsize - + def __init__(self, _data_set=[[30, 55, 69, 37], [45, 67, 34, 22], [22, 45, 12, 34]], + _xaxis_name="x-axis", + _yaxis_name="y-axis", + _xaxis_categories=[1, 2, 3, 4], + _graph_image_name="image_name", + _label=["bi-downlink", "bi-uplink", 'uplink'], + _color=None, + _bar_width=0.25, + _color_edge='grey', + _font_weight='bold', + _color_name=['lightcoral', 'darkgrey', 'r', 'g', 'b', 'y'], + _figsize=(10, 5), + _dpi=96): + self.data_set = _data_set + self.xaxis_name = _xaxis_name + self.yaxis_name = _yaxis_name + self.xaxis_categories = _xaxis_categories + self.graph_image_name = _graph_image_name + self.label = _label + self.color = _color + self.bar_width = _bar_width + self.color_edge = _color_edge + self.font_weight = _font_weight + self.color_name = _color_name + self.figsize = _figsize def build_bar_graph(self): if self.color is None: @@ -66,23 +64,23 @@ class lf_bar_graph(): self.color = [] for col in self.data_set: self.color.append(self.color_name[i]) - i = i+1 + i = i + 1 fig = plt.subplots(figsize=self.figsize) i = 0 - for set in self.data_set: + for data in self.data_set: if i > 0: br = br1 br2 = [x + self.bar_width for x in br] - plt.bar(br2, self.data_set[i], color=self.color[i], width=self.bar_width, + plt.bar(br2, self.data_set[i], color=self.color[i], width=self.bar_width, edgecolor=self.color_edge, label=self.label[i]) br1 = br2 - i = i+1 + i = i + 1 else: br1 = np.arange(len(self.data_set[i])) plt.bar(br1, self.data_set[i], color=self.color[i], width=self.bar_width, edgecolor=self.color_edge, label=self.label[i]) - i=i+1 + i = i + 1 plt.xlabel(self.xaxis_name, fontweight='bold', fontsize=15) plt.ylabel(self.yaxis_name, fontweight='bold', fontsize=15) plt.xticks([r + self.bar_width for r in range(len(self.data_set[0]))], @@ -90,24 +88,24 @@ class lf_bar_graph(): plt.legend() fig = plt.gcf() - plt.savefig("%s.png"% (self.graph_image_name), dpi=96) + plt.savefig("%s.png" % self.graph_image_name, dpi=96) plt.close() print("{}.png".format(self.graph_image_name)) - return "%s.png" % (self.graph_image_name) + return "%s.png" % self.graph_image_name class lf_scatter_graph(): def __init__(self, - _x_data_set=["sta0 ","sta1","sta2","sta3"], - _y_data_set=[[30,55,69,37]], - _values =None, - _xaxis_name="x-axis", - _yaxis_name="y-axis", - _label = ["num1", "num2"], - _graph_image_name="image_name", - _color=["r","y"], - _figsize=(9,4)): + _x_data_set=["sta0 ", "sta1", "sta2", "sta3"], + _y_data_set=[[30, 55, 69, 37]], + _values=None, + _xaxis_name="x-axis", + _yaxis_name="y-axis", + _label=["num1", "num2"], + _graph_image_name="image_name", + _color=["r", "y"], + _figsize=(9, 4)): self.x_data_set = _x_data_set self.y_data_set = _y_data_set self.xaxis_name = _xaxis_name @@ -125,7 +123,7 @@ class lf_scatter_graph(): if self.values is None: plt.scatter(self.x_data_set, self.y_data_set[0], color=self.color[0], label=self.label[0]) if len(self.y_data_set) > 1: - for i in range(1,len(self.y_data_set)): + for i in range(1, len(self.y_data_set)): plt.scatter(self.x_data_set, self.y_data_set[i], color=self.color[i], label=self.label[i]) plt.xlabel(self.xaxis_name, fontweight='bold', fontsize=15) plt.ylabel(self.yaxis_name, fontweight='bold', fontsize=15) @@ -138,21 +136,22 @@ class lf_scatter_graph(): plt.ylabel(self.yaxis_name, fontweight='bold', fontsize=15) plt.gcf().autofmt_xdate() plt.legend(handles=scatter.legend_elements()[0], labels=self.label) - plt.savefig("%s.png" % (self.graph_image_name), dpi=96) + plt.savefig("%s.png" % self.graph_image_name, dpi=96) plt.close() print("{}.png".format(self.graph_image_name)) - return "%s.png" % (self.graph_image_name) + return "%s.png" % self.graph_image_name + class lf_stacked_graph(): def __init__(self, - _data_set= [[1,2,3,4],[1,1,1,1],[1,1,1,1]], - _xaxis_name="Stations", - _yaxis_name="Numbers", - _label = ['Success','Fail'], - _graph_image_name="image_name", - _color = ["b","g"], - _figsize=(9,4)): + _data_set=[[1, 2, 3, 4], [1, 1, 1, 1], [1, 1, 1, 1]], + _xaxis_name="Stations", + _yaxis_name="Numbers", + _label=['Success', 'Fail'], + _graph_image_name="image_name", + _color=["b", "g"], + _figsize=(9, 4)): self.data_set = _data_set # [x_axis,y1_axis,y2_axis] self.xaxis_name = _xaxis_name self.yaxis_name = _yaxis_name @@ -161,7 +160,6 @@ class lf_stacked_graph(): self.label = _label self.color = _color - def build_stacked_graph(self): fig = plt.subplots(figsize=self.figsize) if self.color is None: @@ -170,7 +168,8 @@ class lf_stacked_graph(): plt.bar(self.data_set[0], self.data_set[2], bottom=self.data_set[1], color=self.color[1]) if len(self.data_set) > 3: for i in range(3, len(self.data_set)): - plt.bar(self.data_set[0], self.data_set[i], bottom=np.array(self.data_set[i-2])+np.array(self.data_set[i-1]), color=self.color[i-1]) + plt.bar(self.data_set[0], self.data_set[i], + bottom=np.array(self.data_set[i - 2]) + np.array(self.data_set[i - 1]), color=self.color[i - 1]) plt.xlabel(self.xaxis_name) plt.ylabel(self.yaxis_name) plt.legend(self.label) @@ -180,18 +179,19 @@ class lf_stacked_graph(): return "%s.png" % (self.graph_image_name) + class lf_horizontal_stacked_graph(): def __init__(self, - _seg= 2, - _yaxis_set=('A','B'), - _xaxis_set1=[12, 0, 0, 16, 15], - _xaxis_set2 = [23, 34, 23, 0], - _unit ="%", - _xaxis_name="Stations", - _label=['Success', 'Fail'], - _graph_image_name="image_name", - _color=["success", "Fail"], - _figsize=(9,4)): + _seg=2, + _yaxis_set=('A', 'B'), + _xaxis_set1=[12, 0, 0, 16, 15], + _xaxis_set2=[23, 34, 23, 0], + _unit="%", + _xaxis_name="Stations", + _label=['Success', 'Fail'], + _graph_image_name="image_name", + _color=["success", "Fail"], + _figsize=(9, 4)): self.unit = _unit self.seg = _seg self.xaxis_set1 = _xaxis_set1 @@ -209,15 +209,15 @@ class lf_horizontal_stacked_graph(): fig, ax = plt.subplots(figsize=self.figsize) - N = self.seg + n = self.seg values1 = self.xaxis_set1 values2 = self.xaxis_set2 - ind = np.arange(N) + .15 + ind = np.arange(n) + .15 width = 0.3 rects1 = plt.barh(ind, values1, width, color=self.color[0], label=self.label[0]) - rects2 = plt.barh(ind, values2, width, left=sumzip(values1), color=self.color[1],label=self.label[1]) + rects2 = plt.barh(ind, values2, width, left=sumzip(values1), color=self.color[1], label=self.label[1]) extra_space = 0.15 ax.set_yticks(ind + width - extra_space) @@ -225,26 +225,28 @@ class lf_horizontal_stacked_graph(): ax.yaxis.set_tick_params(length=0, labelbottom=True) for i, v in enumerate(values1): - if v!=0: + if v != 0: plt.text(v * 0.45, i + .145, "%s%s" % (v, self.unit), color='white', fontweight='bold', fontsize=10, ha='center', va='center') for i, v in enumerate(values2): if v != 0: - plt.text(v * 0.45 + values1[i], i + .145, "%s%s" % (v, self.unit), color='white', fontweight='bold', fontsize=10, + plt.text(v * 0.45 + values1[i], i + .145, "%s%s" % (v, self.unit), color='white', fontweight='bold', + fontsize=10, ha='center', va='center') ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.legend(loc='upper right') - plt.savefig("%s.png" % (self.graph_image_name), dpi=96) + plt.savefig("%s.png" % self.graph_image_name, dpi=96) plt.close() print("{}.png".format(self.graph_image_name)) - return "%s.png" % (self.graph_image_name) + return "%s.png" % self.graph_image_name + + # Unit Test if __name__ == "__main__": - output_html_1 = "graph_1.html" output_pdf_1 = "graph_1.pdf" @@ -263,26 +265,25 @@ if __name__ == "__main__": # write logic to generate pdf here # wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb # sudo apt install ./wkhtmltox_0.12.6-1.focal_amd64.deb - options = {"enable-local-file-access" : None} # prevent eerror Blocked access to file + options = {"enable-local-file-access": None} # prevent eerror Blocked access to file pdfkit.from_file(output_html_1, output_pdf_1, options=options) - # test build_bar_graph setting values - dataset = [[45,67,34,22],[22,45,12,34],[30,55,69,37]] - x_axis_values = [1,2,3,4] + dataset = [[45, 67, 34, 22], [22, 45, 12, 34], [30, 55, 69, 37]] + x_axis_values = [1, 2, 3, 4] output_html_2 = "graph_2.html" output_pdf_2 = "graph_2.pdf" # test build_bar_graph with defaults - graph = lf_bar_graph(_data_set=dataset, - _xaxis_name="stations", - _yaxis_name="Throughput 2 (Mbps)", - _xaxis_categories=x_axis_values, - _graph_image_name="Bi-single_radio_2.4GHz", - _label=["bi-downlink", "bi-uplink",'uplink'], - _color=None, - _color_edge='red') + graph = lf_bar_graph(_data_set=dataset, + _xaxis_name="stations", + _yaxis_name="Throughput 2 (Mbps)", + _xaxis_categories=x_axis_values, + _graph_image_name="Bi-single_radio_2.4GHz", + _label=["bi-downlink", "bi-uplink", 'uplink'], + _color=None, + _color_edge='red') graph_html_obj = """

@@ -296,8 +297,5 @@ if __name__ == "__main__": # write logic to generate pdf here # wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb # sudo apt install ./wkhtmltox_0.12.6-1.focal_amd64.deb - options = {"enable-local-file-access" : None} # prevent eerror Blocked access to file + options = {"enable-local-file-access": None} # prevent eerror Blocked access to file pdfkit.from_file(output_html_2, output_pdf_2, options=options) - - - diff --git a/py-scripts/lf_report_test.py b/py-scripts/lf_report_test.py index 75e1cbec..45bcdd45 100755 --- a/py-scripts/lf_report_test.py +++ b/py-scripts/lf_report_test.py @@ -18,36 +18,35 @@ COPYWRITE INCLUDE_IN_README ''' -import matplotlib.pyplot as plt -import matplotlib as mpl -import numpy as np +import matplotlib.pyplot as plt +import matplotlib as mpl +import numpy as np import pandas as pd import pdfkit from lf_report import lf_report -from lf_graph import lf_bar_graph, lf_scatter_graph , lf_stacked_graph, lf_horizontal_stacked_graph +from lf_graph import lf_bar_graph, lf_scatter_graph, lf_stacked_graph, lf_horizontal_stacked_graph # Unit Test if __name__ == "__main__": - - # Testing: generate data frame + # Testing: generate data frame dataframe = pd.DataFrame({ - 'product':['CT521a-264-1ac-1n','CT521a-1ac-1ax','CT522-264-1ac2-1n','CT523c-2ac2-db-10g-cu','CT523c-3ac2-db-10g-cu','CT523c-8ax-ac10g-cu','CT523c-192-2ac2-1ac-10g'], - 'radios':[1,1,2,2,6,9,3], - 'MIMO':['N','N','N','Y','Y','Y','Y'], - 'stations':[200,64,200,128,384,72,192], - 'mbps':[300,300,300,10000,10000,10000,10000] + 'product': ['CT521a-264-1ac-1n', 'CT521a-1ac-1ax', 'CT522-264-1ac2-1n', 'CT523c-2ac2-db-10g-cu', + 'CT523c-3ac2-db-10g-cu', 'CT523c-8ax-ac10g-cu', 'CT523c-192-2ac2-1ac-10g'], + 'radios': [1, 1, 2, 2, 6, 9, 3], + 'MIMO': ['N', 'N', 'N', 'Y', 'Y', 'Y', 'Y'], + 'stations': [200, 64, 200, 128, 384, 72, 192], + 'mbps': [300, 300, 300, 10000, 10000, 10000, 10000] }) print(dataframe) # Testing: generate data frame dataframe2 = pd.DataFrame({ - 'station':[1,2,3,4,5,6,7], - 'time_seconds':[23,78,22,19,45,22,25] + 'station': [1, 2, 3, 4, 5, 6, 7], + 'time_seconds': [23, 78, 22, 19, 45, 22, 25] }) - - #report = lf_report(_dataframe=dataframe) + # report = lf_report(_dataframe=dataframe) report = lf_report() report_path = report.get_path() @@ -59,9 +58,8 @@ if __name__ == "__main__": report.set_title("Banner Title One") report.build_banner() - - #report.set_title("Banner Title Two") - #report.build_banner() + # report.set_title("Banner Title Two") + # report.build_banner() report.set_table_title("Title One") report.build_table_title() @@ -76,21 +74,20 @@ if __name__ == "__main__": report.build_table() # test lf_graph in report - dataset = [[45,67,34,22],[22,45,12,34],[30,55,69,37]] - x_axis_values = [1,2,3,4] + dataset = [[45, 67, 34, 22], [22, 45, 12, 34], [30, 55, 69, 37]] + x_axis_values = [1, 2, 3, 4] report.set_graph_title("Graph Title") report.build_graph_title() - - graph = lf_bar_graph(_data_set=dataset, - _xaxis_name="stations", - _yaxis_name="Throughput 2 (Mbps)", - _xaxis_categories=x_axis_values, - _graph_image_name="Bi-single_radio_2.4GHz", - _label=["bi-downlink", "bi-uplink",'uplink'], - _color=None, - _color_edge='red') + graph = lf_bar_graph(_data_set=dataset, + _xaxis_name="stations", + _yaxis_name="Throughput 2 (Mbps)", + _xaxis_categories=x_axis_values, + _graph_image_name="Bi-single_radio_2.4GHz", + _label=["bi-downlink", "bi-uplink", 'uplink'], + _color=None, + _color_edge='red') graph_png = graph.build_bar_graph() @@ -103,7 +100,7 @@ if __name__ == "__main__": report.build_graph() set1 = [1, 2, 3, 4] set2 = [[45, 67, 45, 34], [34, 56, 45, 34], [45, 78, 23, 45]] - graph2 = lf_scatter_graph(_x_data_set=set1, _y_data_set=set2, _xaxis_name="x-axis", _values = None, + graph2 = lf_scatter_graph(_x_data_set=set1, _y_data_set=set2, _xaxis_name="x-axis", _values=None, _yaxis_name="y-axis", _graph_image_name="image_name1", _color=None, @@ -117,7 +114,8 @@ if __name__ == "__main__": report.build_graph() # this will generate graph which is independent,we can customize the value with different colors - graph2 = lf_scatter_graph(_x_data_set=set1, _y_data_set=[45, 67, 45, 34], _values=[0 , 0, 0, 1], _xaxis_name="x-axis", + graph2 = lf_scatter_graph(_x_data_set=set1, _y_data_set=[45, 67, 45, 34], _values=[0, 0, 0, 1], + _xaxis_name="x-axis", _yaxis_name="y-axis", _graph_image_name="image_name_map", _color=None, @@ -146,18 +144,16 @@ if __name__ == "__main__": report.move_graph_image() report.build_graph() - - - graph = lf_horizontal_stacked_graph(_seg= 2, - _yaxis_set=('A','B'), - _xaxis_set1=[12, 65], - _xaxis_set2=[23, 34], - _unit="", - _xaxis_name="Stations", - _label=['Success', 'Fail'], - _graph_image_name="image_name_pass_fail", - _color=["r", "g"], - _figsize=(9, 4)) + graph = lf_horizontal_stacked_graph(_seg=2, + _yaxis_set=('A', 'B'), + _xaxis_set1=[12, 65], + _xaxis_set2=[23, 34], + _unit="", + _xaxis_name="Stations", + _label=['Success', 'Fail'], + _graph_image_name="image_name_pass_fail", + _color=["r", "g"], + _figsize=(9, 4)) graph_png = graph.build_horizontal_stacked_graph() @@ -166,17 +162,17 @@ if __name__ == "__main__": report.set_graph_image(graph_png) report.move_graph_image() report.build_graph() - #report.build_all() + # report.build_all() - html_file = report.write_html() + html_file = report.write_html() print("returned file {}".format(html_file)) print(html_file) # try other pdf formats - #report.write_pdf() - #report.write_pdf(_page_size = 'A3', _orientation='Landscape') - #report.write_pdf(_page_size = 'A4', _orientation='Landscape') - report.write_pdf(_page_size = 'Legal', _orientation='Landscape') - #report.write_pdf(_page_size = 'Legal', _orientation='Portrait') + # report.write_pdf() + # report.write_pdf(_page_size = 'A3', _orientation='Landscape') + # report.write_pdf(_page_size = 'A4', _orientation='Landscape') + report.write_pdf(_page_size='Legal', _orientation='Landscape') + # report.write_pdf(_page_size = 'Legal', _orientation='Portrait') - #report.generate_report() + # report.generate_report()