def get_html(self, d=None, tooltip=None): if not self.output_fns: return if d is not None and self.output_fns: d["figure"] = self.output_fns d["tooltip"] = tooltip return figure_to_html(self.output_fns)
def get_html(self, d=None, tooltip=None): if d is not None: d["tooltip"] = tooltip for plot_tuple in self.name_plots: key = "%s" % (plot_tuple[0]) d[key] = {"figure": plot_tuple[1]} return figure_to_html(self.get_plots(), max_in_a_row=3, true_break_between_rows=True)
def get_jupyter(self): from IPython.core.display import HTML, display display( HTML( figure_to_html(self.get_plots(), max_in_a_row=3, true_break_between_rows=True)))
def get_html(self, d=None, tooltip=None): if d is not None: d["tooltip"] = tooltip d["Table"] = {"table": self.get_table().to_html()} for p in self.plots: name = os.path.splitext(os.path.basename(p))[0] d[name] = {"figure": p} return self.get_table().to_html() + figure_to_html(self.get_plots())
def get_jupyter(self): from IPython.core.display import HTML, display display( HTML( figure_to_html(self.get_plots(), max_in_a_row=3, true_break_between_rows=True))) if self.runscontainer.analyzing_options[ 'Parameter Importance'].getboolean('whisker_quantiles_plot'): output_notebook() show(self.plot_whiskers())
def get_jupyter(self): from IPython.core.display import HTML, display # Show table display(HTML(self.get_table())) # Show plots display( HTML( figure_to_html(list(self.single_plots.values()) + list(self.pairwise_plots.values()), max_in_a_row=3, true_break_between_rows=True)))
def add_layer(self, layer_name, data_dict: OrderedDict, is_tab: bool = False): ''' add a further layer of top data_dict keys Parameters ---------- layer_name: str name of the layer data_dict : OrderedDict see constructor is_tab: bool if True, don't use accordion but tab-structure to wrap content Returns ------- (script, div): (str, str) script goes into header, div goes into body ''' script, div = "", "" if layer_name is None: layer_name = "" unique_layer_name = layer_name + self.get_unique_id() # Add tooltip, if possible tooltip = data_dict.get("tooltip", None) if tooltip is not None: tooltip = "<div class=\"help-tip\"><p>{}</p></div>".format(tooltip) # TODO elif is obsolete / can be merged into first option (simplify!) elif get_tooltip( layer_name): # if no tooltip is parsed, try to look it up tooltip = "<div class=\"help-tip\"><p>{}</p></div>".format( get_tooltip(layer_name)) else: tooltip = "" # Start accordion-panel if not is_tab: div += "<div class=\"accordion\">{0} {1}</div>\n".format( layer_name, tooltip) div += "<div class=\"panel\">\n" # If this layer represents budgets, add tabs for this layer, add tabs-code sublayer_names = [ k for k, v in data_dict.items() if isinstance(v, dict) ] use_tabs = False if len(sublayer_names) >= 1 and all( [sn.lower().startswith('budget') for sn in sublayer_names]): use_tabs = True if use_tabs: div += "<div class=\"tab\">\n" tabs_names = [ k.replace('_', ' ') for k, v in data_dict.items() if isinstance(v, dict) ] default_open_id = "defaultOpen" + self.get_unique_id() div += " <button class=\"tablinks\" onclick=\"openTab(event, '{0}', '{1}')\" "\ "id=\"{2}\">{1}</button>\n".format(unique_layer_name, tabs_names[0], default_open_id) for name in tabs_names[1:]: div += " <button class=\"tablinks\" onclick=\"openTab(event, '{0}', '{1}')\">{1}</button>\n".format( unique_layer_name, name) div += "</div>\n" for k, v in data_dict.items(): if k == "tooltip": continue if k.startswith('budget'): self.budget = k[7:] if not v: if isinstance(v, dict): continue else: return '', '' elif isinstance(v, dict): if use_tabs: div += "<div id=\"{0}\" class=\"tabcontent\">\n".format( unique_layer_name + k.replace('_', ' ')) div += "<div class=\"pane\">\n" add_script, add_div = self.add_layer(k, v, is_tab=use_tabs) script += add_script div += add_div if use_tabs: # close div div += "</div>\n" div += "</div>\n" elif k == "figure": div += figure_to_html(v, prefix=self.output_dn) elif k == "figure_x2": div += figure_to_html(v, prefix=self.output_dn, max_in_a_row=2) elif k == "table": div += "<div style=\"overflow-x: auto\" align=\"center\">\n{}\n</div>\n".format( v) elif k == "html": div += ("<div align=\"center\">\n<a href='{}'>Interactive " "Plot</a>\n</div>\n".format( v[len(self.output_dn):].lstrip("/"))) elif k == "bokeh": # Escape path for URL (remove spaces, slashes and single quotes) path_script = os.path.join( self.relative_content_js, '_'.join([ layer_name, self.budget, self.get_unique_id(), 'script.js' ])) path_script = path_script.translate( {ord(c): None for c in ' \''}) # Write script to file if self.output_dn: with open(os.path.join(self.output_dn, path_script), 'w') as fn: js_code = re.sub('<.*?>', '', v[0].strip()) # Remove script-tags fn.write(js_code) script += "<script src=\"" + path_script + "\"></script>\n" else: script += v[0] div += "<div align=\"center\">\n{}\n</div>\n".format(v[1]) else: try: div += v except Exception as err: self.logger.warning( "Failed on interpreting: %s, %s, %s (Error: %s)", str(layer_name), str(k), str(v), err, exc_info=1) if use_tabs: # close tab with selecting first element by default div += "<script> \n" div += "// Get the element with id=\"{}\" and click on it \n".format( default_open_id) div += "document.getElementById(\"{}\").click(); \n".format( default_open_id) div += "</script> \n" if not is_tab: div += "</div>" return script, div
def get_html(self, d=None, tooltip=None): if d is not None: d["figure"] = self.cluster_plot d["tooltip"] = tooltip return figure_to_html(self.get_plots())
def get_jupyter(self): from IPython.core.display import HTML, display display(HTML(figure_to_html(self.plots)))
def get_html(self, d=None, tooltip=None): if d is not None: d["figure"] = self.plots d["tooltip"] = tooltip return figure_to_html(self.plots)
def get_html(self, d=None, tooltip=None): if d is not None: d["tooltip"] = tooltip for param, plot in self.plots.items(): d[param] = {"figure": plot} return figure_to_html(self.get_plots())