mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	Added method for objective and change the image name banner.png
added bar chart for multiple category
This commit is contained in:
		@@ -5,6 +5,7 @@ import matplotlib as mpl
 | 
			
		||||
import numpy as np 
 | 
			
		||||
import pandas as pd
 | 
			
		||||
import pdfkit
 | 
			
		||||
import math
 | 
			
		||||
 | 
			
		||||
# internal candela references included during intial phases, to be deleted at future date
 | 
			
		||||
# https://candelatech.atlassian.net/wiki/spaces/LANFORGE/pages/372703360/Scripting+Data+Collection+March+2021
 | 
			
		||||
@@ -15,6 +16,7 @@ class report_library():
 | 
			
		||||
                _title="LANForge Test Run Heading",
 | 
			
		||||
                _table_title="LANForge Table Heading",
 | 
			
		||||
                _obj = "",
 | 
			
		||||
                _obj_title = "",
 | 
			
		||||
                _date="1/1/2-21 00:00(UTC)",
 | 
			
		||||
                _output_html="outfile.html",
 | 
			
		||||
                _output_pdf="outfile.pdf"):
 | 
			
		||||
@@ -30,6 +32,7 @@ class report_library():
 | 
			
		||||
            self.html = ""
 | 
			
		||||
            self.custom_html = ""
 | 
			
		||||
            self.objective = _obj
 | 
			
		||||
            self.obj_title = _obj_title
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    def set_title(self,_title):
 | 
			
		||||
@@ -47,8 +50,9 @@ class report_library():
 | 
			
		||||
    def set_custom_html(self,_custom_html):
 | 
			
		||||
        self.custom_html = _custom_html
 | 
			
		||||
 | 
			
		||||
    def set_obj_html(self,_obj):
 | 
			
		||||
    def set_obj_html(self,_obj_title, _obj ):
 | 
			
		||||
        self.objective = _obj
 | 
			
		||||
        self.obj_title = _obj_title
 | 
			
		||||
 | 
			
		||||
    def write_html(self): 
 | 
			
		||||
            # dataframe_html = self.dataframe.to_html(index=False)  # have the index be able to be passed in.
 | 
			
		||||
@@ -86,7 +90,7 @@ class report_library():
 | 
			
		||||
 | 
			
		||||
                <title>BANNER </title></head>
 | 
			
		||||
                <body>
 | 
			
		||||
                <div class='Section report_banner-1000x205' style='background-image:url(banner.png");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
 | 
			
		||||
                <div class='Section report_banner-1000x205' style='background-image:url("banner.png");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
 | 
			
		||||
                <br>
 | 
			
		||||
                <img align='right' style='padding:25;margin:5;width:200px;' src="CandelaLogo2-90dpi-200x90-trans.png" border='0' />
 | 
			
		||||
 | 
			
		||||
@@ -108,9 +112,8 @@ class report_library():
 | 
			
		||||
                <meta charset='UTF-8'>
 | 
			
		||||
                <meta name='viewport' content='width=device-width, initial-scale=1' />
 | 
			
		||||
                <div class='HeaderStyle'>
 | 
			
		||||
                <br>
 | 
			
		||||
                <h2 class='TitleFontPrint' style='color:darkgreen;'>""" + str(self.table_title) + """</h2>
 | 
			
		||||
                <br>"""
 | 
			
		||||
                """
 | 
			
		||||
        self.html += self.table_title_html
 | 
			
		||||
 | 
			
		||||
    # right now from data frame
 | 
			
		||||
@@ -124,12 +127,52 @@ class report_library():
 | 
			
		||||
    def build_objective(self):
 | 
			
		||||
        self.obj_html = """
 | 
			
		||||
                    <!-- Test Objective -->
 | 
			
		||||
                    <h3 align='left'>Objective</h3> 
 | 
			
		||||
                    <h3 align='left'>""" + str(self.obj_title) + """</h3> 
 | 
			
		||||
                    <p align='left' width='900'>""" + str(self.objective) + """</p>
 | 
			
		||||
                    <br>
 | 
			
		||||
                    """
 | 
			
		||||
        self.html += self.obj_html
 | 
			
		||||
 | 
			
		||||
    def build_bar_graph(self, data_set, xaxis_name, yaxis_name, xaxis_categories, graph_image_name, label,color=None):
 | 
			
		||||
        barWidth = 0.25
 | 
			
		||||
        color_name = ['lightcoral','darkgrey','r','g','b','y']
 | 
			
		||||
        if color is None:
 | 
			
		||||
            i = 0
 | 
			
		||||
            color = []
 | 
			
		||||
            for col in data_set:
 | 
			
		||||
                color.append(color_name[i])
 | 
			
		||||
                i = i+1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        fig = plt.subplots(figsize=(12, 8))
 | 
			
		||||
        i = 0
 | 
			
		||||
        for set in data_set:
 | 
			
		||||
            if i > 0:
 | 
			
		||||
                br = br1
 | 
			
		||||
                br2 = [x + barWidth for x in br]
 | 
			
		||||
                plt.bar(br2, data_set[i], color=color[i], width=barWidth,
 | 
			
		||||
                        edgecolor='grey', label=label[i])
 | 
			
		||||
                br1 = br2
 | 
			
		||||
                i = i+1
 | 
			
		||||
            else:
 | 
			
		||||
                br1 = np.arange(len(data_set[i]))
 | 
			
		||||
                plt.bar(br1, data_set[i], color=color[i], width=barWidth,
 | 
			
		||||
                        edgecolor='grey', label=label[i])
 | 
			
		||||
                i=i+1
 | 
			
		||||
        plt.xlabel(xaxis_name, fontweight='bold', fontsize=15)
 | 
			
		||||
        plt.ylabel(yaxis_name, fontweight='bold', fontsize=15)
 | 
			
		||||
        plt.xticks([r + barWidth for r in range(len(data_set[0]))],
 | 
			
		||||
                   xaxis_categories)
 | 
			
		||||
        plt.legend()
 | 
			
		||||
 | 
			
		||||
        fig = plt.gcf()
 | 
			
		||||
        plt.savefig("%s.png"% (graph_image_name), dpi=96)
 | 
			
		||||
        self.graph_html_obj = """
 | 
			
		||||
              <img align='center' style='padding:15;margin:5;width:1000px;' src=""" + "%s.png" % (graph_image_name) + """ border='1' />
 | 
			
		||||
            <br><br>
 | 
			
		||||
            """
 | 
			
		||||
        self.html +=self.graph_html_obj
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Unit Test
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
@@ -170,6 +213,11 @@ if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||
    report.set_dataframe(dataframe2)
 | 
			
		||||
    report.build_table()
 | 
			
		||||
    dataset = [[30,55,69,37],[45,67,34,22],[22,45,12,34]]
 | 
			
		||||
    x_axis_values = [1,2,3,4]
 | 
			
		||||
    report.build_bar_graph(dataset, "stations", "Throughput (Mbps)", x_axis_values,
 | 
			
		||||
                           "Bi-single_radio_2.4GHz",
 | 
			
		||||
                           ["bi-downlink", "bi-uplink",'uplink'], None)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #report.build_all()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user