local_visualizer.local_visualizer module¶
Simple api to visualize the plots in a script.
Motivation¶
- When moving from an IPython notebook to a script, we lose the diagnostics
- of visualizing pandas as tables and matplotlib plots.
LocalVizstarts a local http server and creates a html file to- which pandas tables and matplotlib plots can be sent over.
- The html file is dynamically updated for long running scripts.
Usage¶
Sample Usage:
import logging, sys, numpy as np, pandas as pd, matplotlib.pyplot as plt
import local_visualizer
plt.style.use('fivethirtyeight')
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
# Create the local visualizer instance
lviz = local_visualizer.LocalViz(html_file='lviz_test.html', port=9112)
# INFO:root:Starting background server at: http://localhost:9112/.
# INFO:local_visualizer:Click: http://carpediem:9112/lviz_test.html or http://localhost:9112/lviz_test.html # noqa
# Create plots which will be streamed to the html file.
lviz.h3('Matplotlib :o')
lviz.p(
'Wrap your plots in the figure context manager which takes '
'in the kwargs of plt.figure and returns a plt.figure object.',
)
with lviz.figure(figsize=(10, 8)) as fig:
x = np.linspace(-10, 10, 1000)
plt.plot(x, np.sin(x))
plt.title('Sine test')
lviz.hr()
# Visualize pandas dataframes as tables.
lviz.h3('Pandas dataframes')
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat(
[df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
axis=1,
)
lviz.write(df)
lviz.close()
Output¶
This starts a HTTPServer and creates a html file which is dynamically updated
each time lviz is called. See https://i.imgur.com/jjwvAX2.png for the
output of the above commands.
-
local_visualizer.local_visualizer.HEADER_LEVELS= [1, 2, 3, 4, 5]¶ The different HTML header levels.
-
class
local_visualizer.local_visualizer.HtmlGenerator(output_fl=None)¶ Bases:
objectA class which updates a html file and exposes API for the same.
The class also exposes the methods
h1,h2, …,h6for writing headers.-
br()¶ Inserts a break line in the html file.
-
figure(*args, **kwds)¶ Context manager as a stand it replacement for
plt.figure.Example usage:
with lviz.figure(figsize=(10, 10)) as fig: plt.plot(x, y) plt.title('This is a title')
-
header(text, level=4)¶ Creates a header line of given level.
Parameters: - text (str) – The html header text.
- level (int) – The level of the html header.
-
hr()¶ Inserts a horizontal line wrapped in blank lines in the html file.
-
p(text)¶ Writes a paragraph tagged text.
Parameters: text (str) – The html paragraph text.
-
write(text_or_df)¶ Appends the text or a pandas df to the output file.
Parameters: text_or_df (str or pandas.DataFrame) – The string or the pandas dataframe to be written to file.
-
-
class
local_visualizer.local_visualizer.LocalViz(lazy=False, html_file=None, run_server=True, port=9111)¶ Bases:
objectAPI for creating a html visualizer for python scripts.
All the public methods of
HtmlGeneratorare also exposed by this class.See module docstring for usage.
-
close(*args, **kwargs)¶ Writes the closing html tags to the html file.
-
del_html(*args, **kwargs)¶ Deletes the generated html file.
Note
Mutates
self.html_file.
-
inform_cleanup(*args, **kwargs)¶ Informs the user which html file to delete at the end.
-
start()¶ Creates the html file and possibly starts the bgd http server.
Mutates
self.html_fileself._html_genself.is_started
-
-
local_visualizer.local_visualizer.delete_files_silently(files)¶ Deletes a list of files if they exist.
Parameters: files (list of str) – A list of file paths.
-
local_visualizer.local_visualizer.run_bgd_server(port, host='localhost')¶ Creates a simple http server in a daemon thread.
Parameters: - host (str) – The host id where the server has to be started,
ex.
'localhost'. - port (int) – The port where the local server should serve.
Returns: A daemon thread running a simple http server in the background.
Type: threading.Thread
- host (str) – The host id where the server has to be started,
ex.
-
local_visualizer.local_visualizer.validate_lviz_started(method)¶ Decorater for LocalViz methods to ensure the instance has been started.