Saving figure source data

Many scientific journals are (for good reason) requiring that authors upload the source data for their figures. For complex analysis pipelines this can be complicated and frustrating. FigureFirst to the rescue!

This notebook demonstrates how you can use FigureFirst to save the source data for your figures automatically. Source data here means the data, function calls, and the arguments to those functions.

With the FigureFirst formatted source data in hand, you can easily rebuild the figure, or output the data to a human readable CSV (Markdown) file.


In [1]:
import numpy as np
import figurefirst
fifi = figurefirst
from IPython.display import display,SVG,Markdown

In [2]:
layout = fifi.FigureLayout('figure_template.svg', hide_layers=['template'])
layout.make_mplfigures(hide=True)

Clear out the data for all the figures and axes


In [3]:
for key, axis in layout.axes.items():
    print (key)
    # note, you can use the data filename, or the layout filename (as long as you use the defaults)
    fifi.regenerate.clear_fifidata('figure_template.svg', key)


('figure_1', 'axis_a')
Automatically finding data file: figure_template_data.dillpickle
Clearing: ('figure_1', 'axis_a')
Automatically finding data file: figure_template_data.dillpickle
('figure_2', 'axis_a')
Automatically finding data file: figure_template_data.dillpickle
Clearing: ('figure_2', 'axis_a')
Automatically finding data file: figure_template_data.dillpickle
('figure_1', 'axis_b')
Automatically finding data file: figure_template_data.dillpickle
Clearing: ('figure_1', 'axis_b')
Automatically finding data file: figure_template_data.dillpickle

All the magic happens through the FFAxis class, which is a wrapper for the MatPlotLib Axis

To keep track of which axis you're working with you can use the breadcrumb


In [4]:
ax = layout.axes[('figure_1', 'axis_a')]
ax.breadcrumb


Out[4]:
{'data_filename': 'figure_template_data.dillpickle',
 'layout_filename': 'figure_template.svg',
 'layout_key': ('figure_1', 'axis_a')}

Use matplotlib to plot some data on figure_1 axis_a


In [5]:
ax = layout.axes[('figure_1', 'axis_a')]

# make some fake data
x = np.linspace(0,10,100)
y = np.sin(x)

# call matplotlib's plot function with the figurefirst wrapper, which saves the data

title = 'Sine wave for ' + ax.breadcrumb['layout_key'][1]
argument_1 = 'Time'
argument_2 = 'Response'
ax._plot([title, argument_1, argument_2], x, y, color='blue')

Use some functions in figurefirst.mpl_functions on figure_1 axis_b


In [6]:
ax = layout.axes[('figure_1', 'axis_b')]

# use figurefirst wrapper for adding a patch
# note: matplotlib function add_artist does not work in regeneration step (artists cannot be pickled)   
ax._add_mpl_patch(['This is a rectangle'], 'Rectangle', (3, 0), 1.5, 1, fill=False, color='red', linewidth=1)

# Generally we recommend using '_' notation, and including a title and description of the arguments
# However, for quick formatting calls, there is a faster notation. This does not work with custom functions. 

# First set record to True
ax.record = True

# Then make your function calls as usual
# matplotlib functions
ax.set_xlim(0,5)
ax.set_ylim(-1,1)

# figurefirst.mpl_functions
ax.adjust_spines(['left', 'bottom']) 
ax.set_fontsize(6)

Use a pickle-able user defined plotting function on figure_2 axis_a


In [7]:
ax = layout.axes[('figure_2', 'axis_a')]

def foo(ax, x, list_of_noisy_ys, color='green'):
    mean_y = np.mean(list_of_noisy_ys, axis=0)
    ax.plot(x, mean_y, color=color, linewidth=3)
    for y in list_of_noisy_ys:
        ax.plot(x, y, color=color, linewidth=1, alpha=0.2)

# save a custom plotting function in the data file
list_of_noisy_ys = []
for i in range(6):
    noisy_y = y + np.random.uniform(-0.5, 0.5, len(y))
    list_of_noisy_ys.append(noisy_y)
ax._custom(['Plot line and dots', 'Time', 'List of y values'], foo, x, list_of_noisy_ys, color='magenta')

Use a custom function from another package:

ax._custom(['Title', 'Arg description], 'package.module.function', *args, **kwargs)

Save figures to layout and write svg


In [8]:
layout.append_figure_to_layer(layout.figures['figure_1'], 'figure_1', cleartarget=True)
layout.append_figure_to_layer(layout.figures['figure_2'], 'figure_2', cleartarget=True)
svg = 'figure_output.svg'
layout.write_svg(svg)
SVG(svg)


Out[8]:
image/svg+xml

You can also write arbitrary data to the file using a similar interface through the layout object


In [9]:
# first clear anything that is there
fifi.regenerate.clear_fifidata(layout.data_filename, layout_key='Supplemental Data')

a = [np.random.random(10) for i in range(5)]
b = [1,2,3,4]
layout.write_fifidata(['Title of Arbitrary Data', 'Description of Data A', 'Description of Data B'], 
                      a, b)


Clearing: Supplemental Data
figure_template_data.dillpickle

Regenerate the figure from the saved data


In [10]:
fifi.regenerate.replot('figure_template.svg', output_filename='new_figure_output.svg')


====================================================================================================
Package: custom  |  Function: <function foo at 0x7fceaba87a60>
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2909 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-7-3da5f5b628d5>, line 14 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 527 in custom_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
====================================================================================================
Package: matplotlib  |  Function: plot
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2909 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-5-92c740d9a35d>, line 12 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 581 in mpl_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
====================================================================================================
Package: figurefirst  |  Function: add_mpl_patch
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2903 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-6-c66d8dee6fc0>, line 5 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 560 in figurefirst_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
====================================================================================================
Package: matplotlib  |  Function: set_xlim
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2903 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-6-c66d8dee6fc0>, line 15 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 616 in wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
====================================================================================================
Package: matplotlib  |  Function: set_ylim
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2903 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-6-c66d8dee6fc0>, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 616 in wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
====================================================================================================
Package: figurefirst  |  Function: adjust_spines
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2903 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-6-c66d8dee6fc0>, line 19 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 601 in wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
====================================================================================================
Package: figurefirst  |  Function: set_fontsize
[<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>, <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>, <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>, <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2909 in run_ast_nodes>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>, <FrameSummary file <ipython-input-6-c66d8dee6fc0>, line 20 in <module>>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 601 in wrapper>, <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]
Skipping figure: none

In [11]:
svg = 'new_figure_output.svg'
layout.set_layer_visibility('Layer 1',False)
layout.write_svg(svg)
SVG(svg)


Out[11]:
image/svg+xml

Take a look at the data file


In [12]:
data = fifi.regenerate.load_data_file('figure_template.svg') # you can either use the layout or data filename


Automatically finding data file: figure_template_data.dillpickle

Here are all the plotting actions, data, and settings called for figure_1 axis_a


In [13]:
data[('figure_1', 'axis_a')]


Out[13]:
[{'args': (array([ 0.        ,  0.1010101 ,  0.2020202 ,  0.3030303 ,  0.4040404 ,
           0.50505051,  0.60606061,  0.70707071,  0.80808081,  0.90909091,
           1.01010101,  1.11111111,  1.21212121,  1.31313131,  1.41414141,
           1.51515152,  1.61616162,  1.71717172,  1.81818182,  1.91919192,
           2.02020202,  2.12121212,  2.22222222,  2.32323232,  2.42424242,
           2.52525253,  2.62626263,  2.72727273,  2.82828283,  2.92929293,
           3.03030303,  3.13131313,  3.23232323,  3.33333333,  3.43434343,
           3.53535354,  3.63636364,  3.73737374,  3.83838384,  3.93939394,
           4.04040404,  4.14141414,  4.24242424,  4.34343434,  4.44444444,
           4.54545455,  4.64646465,  4.74747475,  4.84848485,  4.94949495,
           5.05050505,  5.15151515,  5.25252525,  5.35353535,  5.45454545,
           5.55555556,  5.65656566,  5.75757576,  5.85858586,  5.95959596,
           6.06060606,  6.16161616,  6.26262626,  6.36363636,  6.46464646,
           6.56565657,  6.66666667,  6.76767677,  6.86868687,  6.96969697,
           7.07070707,  7.17171717,  7.27272727,  7.37373737,  7.47474747,
           7.57575758,  7.67676768,  7.77777778,  7.87878788,  7.97979798,
           8.08080808,  8.18181818,  8.28282828,  8.38383838,  8.48484848,
           8.58585859,  8.68686869,  8.78787879,  8.88888889,  8.98989899,
           9.09090909,  9.19191919,  9.29292929,  9.39393939,  9.49494949,
           9.5959596 ,  9.6969697 ,  9.7979798 ,  9.8989899 , 10.        ]),
   array([ 0.        ,  0.10083842,  0.20064886,  0.2984138 ,  0.39313661,
           0.48385164,  0.56963411,  0.64960951,  0.72296256,  0.78894546,
           0.84688556,  0.8961922 ,  0.93636273,  0.96698762,  0.98775469,
           0.99845223,  0.99897117,  0.98930624,  0.96955595,  0.93992165,
           0.90070545,  0.85230712,  0.79522006,  0.73002623,  0.65739025,
           0.57805259,  0.49282204,  0.40256749,  0.30820902,  0.21070855,
           0.11106004,  0.01027934, -0.09060615, -0.19056796, -0.28858706,
          -0.38366419, -0.47483011, -0.56115544, -0.64176014, -0.7158225 ,
          -0.7825875 , -0.84137452, -0.89158426, -0.93270486, -0.96431712,
          -0.98609877, -0.99782778, -0.99938456, -0.99075324, -0.97202182,
          -0.94338126, -0.90512352, -0.85763861, -0.80141062, -0.73701276,
          -0.66510151, -0.58640998, -0.50174037, -0.41195583, -0.31797166,
          -0.22074597, -0.12126992, -0.0205576 ,  0.0803643 ,  0.18046693,
           0.27872982,  0.37415123,  0.46575841,  0.55261747,  0.63384295,
           0.7086068 ,  0.77614685,  0.83577457,  0.8868821 ,  0.92894843,
           0.96154471,  0.98433866,  0.99709789,  0.99969234,  0.99209556,
           0.97438499,  0.94674118,  0.90944594,  0.86287948,  0.8075165 ,
           0.74392141,  0.6727425 ,  0.59470541,  0.51060568,  0.42130064,
           0.32770071,  0.23076008,  0.13146699,  0.03083368, -0.07011396,
          -0.17034683, -0.26884313, -0.36459873, -0.45663749, -0.54402111])),
  'args_description': ['Time', 'Response'],
  'function': 'plot',
  'kwargs': {'color': 'blue'},
  'package': 'matplotlib',
  'title': 'Sine wave for axis_a',
  'traceback': [<FrameSummary file /usr/lib/python3.5/runpy.py, line 184 in _run_module_as_main>,
   <FrameSummary file /usr/lib/python3.5/runpy.py, line 85 in _run_code>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel_launcher.py, line 16 in <module>>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/traitlets/config/application.py, line 658 in launch_instance>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelapp.py, line 486 in start>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/platform/asyncio.py, line 132 in start>,
   <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 345 in run_forever>,
   <FrameSummary file /usr/lib/python3.5/asyncio/base_events.py, line 1312 in _run_once>,
   <FrameSummary file /usr/lib/python3.5/asyncio/events.py, line 125 in _run>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/ioloop.py, line 758 in _run_callback>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 536 in <lambda>>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 450 in _handle_events>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 480 in _handle_recv>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py, line 432 in _run_callback>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/tornado/stack_context.py, line 300 in null_wrapper>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 283 in dispatcher>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 233 in dispatch_shell>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/kernelbase.py, line 399 in execute_request>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/ipkernel.py, line 208 in do_execute>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/ipykernel/zmqshell.py, line 537 in run_cell>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2662 in run_cell>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2785 in _run_cell>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2909 in run_ast_nodes>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/IPython/core/interactiveshell.py, line 2963 in run_code>,
   <FrameSummary file <ipython-input-5-92c740d9a35d>, line 12 in <module>>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/svg_to_axes.py, line 581 in mpl_wrapper>,
   <FrameSummary file /home/caveman/BMD2/lib/python3.5/site-packages/figurefirst-0.0.1-py3.5.egg/figurefirst/regenerate.py, line 92 in __save_fifidata__>]}]

If you need a more standard and human readable format, you can convert the data file into a markdown / csv file

Only data that has argument descriptions associated with it will be saved. This prevents clogging the file with tick marks, etc. The titles and descriptions are drawn from the data file, so use descriptive titles when writing the code!

Because we did not provide descriptions for the arguments to the rectangle call, it's data is not saved.


In [14]:
# This is optional, but helps to connect the data in the markdown / csv file to the actual panel names you have
# If left blank (None), the Panel names will just be the layout_keys reformatted, e.g. 'figure_1_axis_b')
panel_id_to_layout_keys = {'a': [('figure_1', 'axis_a'), ('figure_1', 'axis_b')],
                           'b': [('figure_2', 'axis_a')]}

# Define a figure number
figure_number = 1

# Header, optional
header = '# This file contains the data needed for generating figure 1\n### FigureFirst example by Floris van Breugel'

In [15]:
fifi.regenerate.write_to_csv('figure_template_data.dillpickle', figure_number, \
                             panel_id_to_layout_keys, header=header)


######################################
('figure_1', 'axis_a')
matplotlib
plot
Sine wave for axis_a
['Time', 'Response']
######################################
('figure_1', 'axis_b')
figurefirst
add_mpl_patch
This is a rectangle
[]
######################################
('figure_1', 'axis_b')
matplotlib
set_xlim
set_xlim
[]
######################################
('figure_1', 'axis_b')
matplotlib
set_ylim
set_ylim
[]
######################################
('figure_1', 'axis_b')
figurefirst
adjust_spines
adjust_spines
[]
######################################
('figure_1', 'axis_b')
figurefirst
set_fontsize
set_fontsize
[]
######################################
('figure_2', 'axis_a')
custom
<function foo at 0x7fceabb32a60>
Plot line and dots
['Time', 'List of y values']
######################################
Supplemental Data
none
none
Title of Arbitrary Data
['Description of Data A', 'Description of Data B']

In [16]:
# Take a look at the file. If you need a ".csv" file, just change the extension. 
# Markdown files can be displayed nicely in Chrome: 
#      https://stackoverflow.com/questions/9843609/view-markdown-files-offline

with open('figure_template_data_summary.md', 'r') as fh:
    content = fh.read()
display(Markdown(content))


#

This file contains the data needed for generating figure 1

FigureFirst example by Floris van Breugel

This file was automatically generated from source data using FigureFirst: http://flyranch.github.io/figurefirst/
#

Figure: 1

#

Panel: a

#

Panel element name: figure_1, axis_a

Plot feature name: Sine wave for axis_a

#

Time

0.0, 0.10101010101010101, 0.20202020202020202, 0.30303030303030304, 0.40404040404040403, 0.5050505050505051, 0.6060606060606061, 0.7070707070707071, 0.8080808080808081, 0.9090909090909091, 1.0101010101010102, 1.1111111111111112, 1.2121212121212122, 1.3131313131313131, 1.4141414141414141, 1.5151515151515151, 1.6161616161616161, 1.7171717171717171, 1.8181818181818181, 1.9191919191919191, 2.0202020202020203, 2.121212121212121, 2.2222222222222223, 2.323232323232323, 2.4242424242424243, 2.525252525252525, 2.6262626262626263, 2.727272727272727, 2.8282828282828283, 2.929292929292929, 3.0303030303030303, 3.131313131313131, 3.2323232323232323, 3.3333333333333335, 3.4343434343434343, 3.5353535353535355, 3.6363636363636362, 3.7373737373737375, 3.8383838383838382, 3.9393939393939394, 4.040404040404041, 4.141414141414141, 4.242424242424242, 4.343434343434343, 4.444444444444445, 4.545454545454545, 4.646464646464646, 4.747474747474747, 4.848484848484849, 4.94949494949495, 5.05050505050505, 5.151515151515151, 5.252525252525253, 5.353535353535354, 5.454545454545454, 5.555555555555555, 5.656565656565657, 5.757575757575758, 5.858585858585858, 5.959595959595959, 6.0606060606060606, 6.161616161616162, 6.262626262626262, 6.363636363636363, 6.4646464646464645, 6.565656565656566, 6.666666666666667, 6.767676767676767, 6.8686868686868685, 6.96969696969697, 7.070707070707071, 7.171717171717171, 7.2727272727272725, 7.373737373737374, 7.474747474747475, 7.575757575757575, 7.6767676767676765, 7.777777777777778, 7.878787878787879, 7.979797979797979, 8.080808080808081, 8.181818181818182, 8.282828282828282, 8.383838383838384, 8.484848484848484, 8.585858585858587, 8.686868686868687, 8.787878787878787, 8.88888888888889, 8.98989898989899, 9.09090909090909, 9.191919191919192, 9.292929292929292, 9.393939393939394, 9.494949494949495, 9.595959595959595, 9.696969696969697, 9.797979797979798, 9.8989898989899, 10.0

Response

0.0, 0.1008384202581046, 0.2006488565226854, 0.2984138044476411, 0.3931366121483298, 0.48385164043793466, 0.5696341069089657, 0.6496095135057065, 0.7229625614794605, 0.7889454628442574, 0.8468855636029834, 0.8961922010299563, 0.9363627251042848, 0.9669876227092996, 0.9877546923600838, 0.9984522269003895, 0.9989711717233568, 0.9893062365143401, 0.9695559491823237, 0.9399216514301312, 0.9007054462029555, 0.8523071179396752, 0.7952200570230491, 0.7300262299764464, 0.6573902466827755, 0.5780525851065732, 0.4928220425889235, 0.40256749066949654, 0.30820901749007684, 0.2107085480771929, 0.11106003812412972, 0.010279341240534697, -0.09060614703340773, -0.19056796287548539, -0.28858705872043244, -0.38366419180611233, -0.47483011082223947, -0.5611554368152017, -0.6417601376193878, -0.7158224992291902, -0.7825875026542022, -0.8413745208608701, -0.8915842573351402, -0.9327048555318336, -0.9643171169287782, -0.9860987744909296, -0.9978277779792126, -0.9993845576124357, -0.9907532430056771, -0.9720218249588334, -0.9433812584459996, -0.9051235159501367, -0.8576386109880517, -0.8014106221689697, -0.7370127583189133, -0.6651015149788224, -0.5864099818472351, -0.5017403693939113, -0.4119558308308628, -0.31797166281061867, -0.22074597455506334, -0.12126992053716677, -0.020557596287260064, 0.08036429967028173, 0.18046693235991093, 0.27872981867755725, 0.37415123057121996, 0.4657584070256517, 0.5526174707464059, 0.6338429484489058, 0.7086067976992182, 0.7761468482835805, 0.8357745720522589, 0.8868821020290788, 0.9289484292312513, 0.9615447140268235, 0.9843386578838236, 0.9970978909438748, 0.9996923408861117, 0.9920955589323228, 0.9743849894755358, 0.9467411805833543, 0.9094459434244625, 0.8628794793817836, 0.8075165041395626, 0.7439214082568444, 0.6727425035622647, 0.5947054140244975, 0.510605678474283, 0.4213006405886069, 0.32770070881349983, 0.23076007532505177, 0.13146698864295842, 0.03083367906114098, -0.07011396040064677, -0.1703468323280965, -0.26884312591038406, -0.3645987336558887, -0.45663748763377376, -0.5440211108893698

#

Panel: b

#

Panel element name: figure_2, axis_a

Plot feature name: Plot line and dots

#

Time

0.0, 0.10101010101010101, 0.20202020202020202, 0.30303030303030304, 0.40404040404040403, 0.5050505050505051, 0.6060606060606061, 0.7070707070707071, 0.8080808080808081, 0.9090909090909091, 1.0101010101010102, 1.1111111111111112, 1.2121212121212122, 1.3131313131313131, 1.4141414141414141, 1.5151515151515151, 1.6161616161616161, 1.7171717171717171, 1.8181818181818181, 1.9191919191919191, 2.0202020202020203, 2.121212121212121, 2.2222222222222223, 2.323232323232323, 2.4242424242424243, 2.525252525252525, 2.6262626262626263, 2.727272727272727, 2.8282828282828283, 2.929292929292929, 3.0303030303030303, 3.131313131313131, 3.2323232323232323, 3.3333333333333335, 3.4343434343434343, 3.5353535353535355, 3.6363636363636362, 3.7373737373737375, 3.8383838383838382, 3.9393939393939394, 4.040404040404041, 4.141414141414141, 4.242424242424242, 4.343434343434343, 4.444444444444445, 4.545454545454545, 4.646464646464646, 4.747474747474747, 4.848484848484849, 4.94949494949495, 5.05050505050505, 5.151515151515151, 5.252525252525253, 5.353535353535354, 5.454545454545454, 5.555555555555555, 5.656565656565657, 5.757575757575758, 5.858585858585858, 5.959595959595959, 6.0606060606060606, 6.161616161616162, 6.262626262626262, 6.363636363636363, 6.4646464646464645, 6.565656565656566, 6.666666666666667, 6.767676767676767, 6.8686868686868685, 6.96969696969697, 7.070707070707071, 7.171717171717171, 7.2727272727272725, 7.373737373737374, 7.474747474747475, 7.575757575757575, 7.6767676767676765, 7.777777777777778, 7.878787878787879, 7.979797979797979, 8.080808080808081, 8.181818181818182, 8.282828282828282, 8.383838383838384, 8.484848484848484, 8.585858585858587, 8.686868686868687, 8.787878787878787, 8.88888888888889, 8.98989898989899, 9.09090909090909, 9.191919191919192, 9.292929292929292, 9.393939393939394, 9.494949494949495, 9.595959595959595, 9.696969696969697, 9.797979797979798, 9.8989898989899, 10.0

List of y values

Number: 1

0.31851028235645285, -0.25443684110508913, -0.2605204849365722, 0.08993314826757948, 0.18373070342687065, 0.4534011409685809, 0.6546550969477696, 0.2540083719740346, 1.1234874637395784, 0.4260760695547454, 0.9399857110477622, 0.4957257435280833, 0.8904842822298009, 1.142875702502383, 1.3671132204411056, 0.6721395233803981, 1.3979390612169393, 0.8961518481166031, 0.6505606196705893, 1.0108262954421146, 0.7168683695902661, 0.616672016081863, 1.214965662514405, 0.3976855069789986, 0.6163737782332932, 0.9500645574505656, 0.7710860036710289, 0.11502187649521428, 0.7976567096246039, 0.36861483724361555, -0.049390065969019584, 0.26712970472982706, -0.3264954909701451, -0.46806318926751145, -0.5948453318895857, -0.6580660607868614, -0.9005560926799115, -0.9461659274188223, -0.5315813833925885, -0.29001504135598066, -1.2563670996566776, -0.6604036077639908, -0.9969281736506324, -0.8806948795098477, -1.454318866431294, -1.154708573646995, -0.5608847391302609, -0.8265621099530475, -0.5401443152011791, -1.2159576646220849, -0.6248438152939063, -0.7245658157693917, -1.1384255774397127, -1.004643546090518, -0.8396719124631039, -0.8401109862329571, -0.5380996286306514, -0.1972892585110415, -0.6672470236244092, -0.10505812082769611, -0.10194067079319608, -0.5593052302619579, -0.18436814562508907, -0.3168710094455011, -0.1877953754271066, -0.21348566742286385, 0.30537308609939046, 0.6162009785232281, 0.7975448416533918, 0.28812587217304353, 1.0000066928079505, 1.2567284934500416, 0.47030994571114215, 0.6080676136335805, 1.2797121706884895, 1.2396389345826972, 0.6783543195882349, 1.3644568809856477, 0.8499297471551962, 0.6705743197048876, 1.2838462127056114, 0.8091909999218992, 0.5800926934591623, 0.8078692855677301, 0.5819958872407288, 0.8379812600562638, 0.8177056475858436, 0.8819897413449354, 0.647408234089923, 0.18076681713555914, -0.08588924130535053, 0.45406374599755533, -0.2917893790000053, 0.27777763159519164, 0.3118128375794269, 0.14167777696378686, -0.7163658871144094, 0.046516961389517886, -0.5493981816078641, -0.2338958072904629

Number: 2

0.35519024127641485, -0.29704288391645683, 0.42939627471375963, 0.008904551562547658, 0.48740390549747886, 0.8014111997184625, 0.8099801198212989, 0.6139074064715802, 0.5596266869072896, 0.5519590228281174, 1.0951809601772116, 0.6534199149452815, 0.8985227231919831, 0.8629013598539458, 1.2829730284183416, 1.4031461729323382, 1.05338502420874, 1.143246813243083, 0.5592628777722913, 0.5782065255392664, 1.112243417892238, 0.8156209540790531, 0.6771180775817627, 0.7266336684182049, 1.0098303931499673, 0.24402538864896783, 0.7500330836842021, 0.3907447882628559, 0.012130801246145684, 0.1282857728730661, 0.3764853977843356, 0.22724833644488324, 0.08685344980094513, 0.30213041274543995, -0.4662430485700165, -0.8080707603007521, -0.33898618042802287, -0.5495300748058112, -0.17420612253623546, -0.36522956049255506, -0.34292647816023647, -1.1482182890032004, -0.9012229648935212, -0.931866457566065, -0.7798386848457496, -1.3201142533292431, -1.0712628462881226, -1.1569039225493438, -0.5859666777236777, -1.242015034370746, -1.1059066058008624, -1.0578712612272492, -0.9418744765764969, -1.1027335175913455, -1.2281771593370818, -1.151728766955767, -0.8673517139205652, -0.10888750582277418, -0.1905462297632124, -0.30655046653055146, -0.6002651055445982, -0.3167401619444733, -0.2741171270998094, -0.25790504583786794, 0.16730019680263172, 0.06524924421568107, 0.5392119113686409, 0.37205864906998115, 0.28829456748863946, 0.8005396864039809, 0.6863741178571005, 1.0370287986716766, 0.9997440865158247, 0.6823028891976848, 1.00239965299967, 0.4881239276798436, 0.7077033144894814, 0.5133833224040288, 1.356396245834714, 0.534383883534709, 1.165219838510004, 0.6309028330013721, 0.9991500878275922, 0.4848165934672146, 0.6327574073106698, 0.48954154951115036, 0.5038441564116882, 0.4189690255341739, 0.1741144563910334, 0.35030851791497625, 0.7572122708417459, -0.0596312965251537, 0.141114904080971, 0.0035559217764206084, -0.4450232766747598, 0.2377554564729018, -0.1036219362318922, -0.440658948862082, -0.19295024918404746, -0.2578235753281938

Number: 3

0.354735518334938, -0.3804954762091022, 0.04588112506018374, 0.3764501108424524, 0.854449618374191, 0.6522795549366533, 0.9702741077277582, 0.4161641400525322, 0.8218725729807721, 1.2208212967982894, 0.5293072691455185, 1.252142055950805, 0.7342100131596887, 0.631068206296704, 1.3815975143629753, 1.2327235972305464, 0.9316225500381135, 0.7683819279579314, 0.9549831610586373, 0.6886274317707209, 1.0905139890015372, 0.6589041582547032, 0.9579971293076918, 0.4910379910499185, 0.6012097985460766, 0.766537300581306, 0.4945308521209927, 0.07208929156477856, -0.18678724878158354, 0.37974076094227105, 0.296493118541221, 0.22714749782182758, -0.12225509967233571, -0.14232846415150036, -0.7729069076857383, -0.30996582915287274, -0.03717392850784651, -0.9841688356824562, -0.20568459759537505, -0.7056459772001625, -0.32721082413575187, -1.2711553178979504, -0.9029457448182538, -0.8230131410253333, -0.7769122003046284, -1.4202367735706836, -0.9935872513370281, -1.3559293316994183, -1.1923827785118002, -1.3052145831026658, -1.1471748598346678, -0.6407851852698213, -0.7040441609535747, -0.6814472643716367, -0.2372070294965578, -1.1455710316270475, -1.0460953669600705, -0.8104289579204432, -0.7907119313459368, 0.018987074308108698, 0.033781988759646164, -0.3516919835971051, 0.33107485216434585, 0.14966970988558087, 0.5640793306272868, -0.11903047363460156, 0.3633142164584819, 0.43329702646128915, 0.6917121359655618, 0.6091950760423713, 0.552949909903175, 0.4985344172719607, 0.7697466211004111, 0.6773876500103981, 0.7010125519868194, 1.004948212504879, 0.5082648846628719, 0.80279490783079, 0.5979620831762171, 1.319494879394787, 1.1245491262922076, 1.4003230713990558, 1.1435745447424015, 0.5261490344857833, 0.9350927820089078, 0.7409428976696419, 0.20814745209083274, 0.3808729929382002, 0.40654176825667054, 0.5368344634480142, 0.5874870153343512, -0.044788566152729026, 0.3695739052213795, -0.30169118598680744, -0.33615134421543647, -0.2024369309602317, -0.5160998763471776, -0.17317265181422614, -0.7801685286006287, -1.0260776755489784

Number: 4

0.0539536072373038, 0.364285737955075, 0.05932346548004566, 0.2539705421372218, 0.32215278186201085, 0.27772439933869736, 0.805946740868967, 0.15754022000871382, 1.1605755018040598, 0.8040834765225161, 0.44636633924386104, 0.8814672614069438, 0.5552546867921496, 0.8092144883030996, 1.428880418005715, 0.7610855680108997, 1.1944162053839738, 1.0125825832844753, 0.7541536453102983, 1.2752765039758873, 1.048389020578449, 0.9590067858843032, 0.5286854123064414, 0.448411351800703, 1.1252841049994857, 0.23067571284981425, 0.09537399234570865, 0.12603752322683232, 0.06874863399963399, 0.698799394854614, 0.037521666516085614, -0.27860669883567896, -0.2825366255312287, -0.43317512658642676, -0.5261447127303059, -0.047641617073461706, -0.18022890545002834, -0.6224188480252709, -0.6821842165605975, -1.038878078382531, -0.7173718562921337, -1.0526194989857123, -1.0392654844847458, -0.9665040545622374, -1.046294541524111, -0.5427511489542419, -1.4586852230057872, -1.1682383617947287, -0.782110352302199, -1.1363328523016745, -1.4268040539781115, -0.6617981180887785, -1.0559752477955089, -0.6359745715812608, -0.6608952237852663, -1.1215061579365653, -0.18219338487031644, -0.5942171701660924, -0.5238083883024147, -0.3201068060612214, 0.06868538239603089, -0.13650595940968613, -0.49566585867279234, 0.1259566147802132, -0.06230869680510301, 0.6321728550171732, -0.027818881277158203, 0.8096796912251858, 0.5762680597220483, 0.5601940803424447, 0.9899046686524422, 1.1225118026687353, 1.0007501090285031, 1.3751460815665424, 0.6892257020939783, 0.5785674243365015, 1.101717559852136, 0.9896942096302273, 1.0763731006297923, 0.6473790624039598, 1.3087302180028044, 0.7651641348235236, 0.9855124413956355, 1.129891708973524, 0.6702629868185579, 0.43371563000432545, 0.18363177457710533, 0.9252441340850701, 0.6112962405166327, 0.7344832610662686, 0.010318646509653806, 0.0043042798576125585, -0.04479867524128095, 0.06561887523743493, -0.2256785518708453, 0.07462096234501309, -0.18093337296181622, -0.5813208009684979, 0.01112287315673488, -0.9970776581590143

Number: 5

0.1019680012638351, 0.10025042402750892, 0.263946660020952, 0.25996993556206216, 0.29741233018234775, 0.4249853485894575, 0.11973879608204951, 0.1509262083436652, 0.7925510065286426, 0.8795643802437906, 1.0981404312792074, 0.588481252217684, 1.3446654060716199, 1.037489528593193, 1.2858552456125554, 1.3547418831820623, 0.8997030415816626, 0.9497872309706955, 1.0829134365465753, 0.7512411256516878, 0.8817915332304328, 0.9942097175786574, 0.43659624083683923, 0.8928032494629654, 0.9218017912461357, 0.9145469224341515, 0.2733528335266756, 0.5054338952332513, -0.15981485980907412, 0.423939659450155, 0.026135250456967116, 0.4045045975395081, 0.36396227330244524, -0.4354343342032041, -0.22434031180481828, -0.4465999705435256, -0.5371955224835032, -0.40034779845610047, -0.9357242506739482, -0.8937998501442583, -1.1239319649995339, -1.3392504305463562, -1.0456187692126533, -0.4543473548197473, -0.5874885231255661, -0.5639682351919478, -0.9132886582657901, -0.6463300904763731, -1.131873150603056, -1.4231088203882694, -1.0826489543541067, -0.5621086591595378, -0.9953155305979973, -0.9719102412081861, -0.8656725215722084, -0.4277346855302838, -0.8369424654425424, -0.45198404635140577, -0.28267289262334755, -0.14024952374326743, 0.0039937535548394965, 0.01838400747527126, 0.36884747606381707, 0.5665127697706192, 0.5542011695586392, 0.32198368881479983, 0.1502202675479551, 0.292956977810831, 0.8462563873078959, 0.3199295935614578, 0.4287246273147638, 1.125160431483253, 0.7315539181980535, 0.41028285407673437, 1.2723109638154964, 0.7656549207307415, 1.3832860053273643, 1.034681576153114, 1.1886342916577037, 0.6225507355332399, 0.7572217414314215, 0.9104189656471869, 0.61303450607125, 1.0028504754900331, 0.8256822295755883, 0.9228643941191361, 0.3279783724153338, 0.48564896676840486, 0.5466649337764149, 0.3145900269971729, 0.48605429953346463, -0.2520811185413247, -0.31649155169486315, 0.30774170161156256, 0.2722692872729592, -0.4767340665270962, -0.7650054314616586, 0.0172509333519949, -0.2587273478402322, -0.9303494782090402

Number: 6

0.3688803108962796, -0.3453653706095243, 0.24076642120090055, 0.6882623211270084, 0.08486026611646219, 0.3254558604583309, 0.08687535564726934, 0.8180725270745764, 0.9449207082580636, 0.7029120935027843, 1.2401420711779991, 0.42604076190510054, 1.3738209367751666, 0.6790213293603246, 0.8805645303923083, 1.0102799502960478, 1.0969800504621778, 0.8917206199238611, 1.1667075822256996, 1.3165164391726094, 1.1493189987247554, 1.201469303903202, 0.6897326053040124, 1.0744509730127327, 0.8227210967678579, 0.24099759666009923, 0.5586508719196072, 0.8572905181222559, 0.4659842504468044, 0.034409058728171044, 0.5613640374597167, 0.04607281690737791, -0.18903595086856162, -0.18332287315237528, 0.19694001998292654, -0.7065849439284868, -0.5686096824205217, -0.22096566433973075, -0.5623043995793038, -1.0935662507052324, -1.1726438278171756, -1.2636065665684824, -0.7882876918029382, -0.9404318323009985, -0.6539819087962416, -0.6375346267484621, -1.4945424597892052, -0.6439186007304933, -1.186339660046474, -1.0260034585411089, -0.6766309830841611, -0.9784868052330523, -0.6798735467407822, -1.178241476778192, -0.6428538278077723, -0.8532508768912244, -0.4118107577318656, -0.541818649950031, -0.7126780455562667, -0.1198434192974574, -0.143255690273912, 0.33133868465369554, 0.015773823641346604, 0.037971232848823464, -0.02960706475879729, 0.7440887893394623, 0.845492297632078, 0.5159262154908926, 0.30910676419166583, 0.14533878820294943, 0.9724172505203288, 0.6994068467691725, 0.895241685052073, 0.6075592467858186, 1.0711530587889218, 1.2706266099388008, 0.9211667071395965, 1.2582724484708099, 0.790176445295261, 1.1124395844794996, 1.402205278858636, 1.3541411857084635, 1.0311664284433344, 1.0918177555462263, 0.9648930620819638, 0.3830349601447318, 0.17944251044215376, 0.9579813960011382, 0.7566823361432997, 0.7842197589921744, -0.03815312162788881, 0.5053463001549003, 0.11710797649281784, 0.4422648370550545, 0.3472211153076743, -0.07188377113432326, -0.5279021981426505, -0.8443222436206013, -0.5553216613828607, -0.3114518839852657

#

Supplemental Data

#

Title of Arbitrary Data

#

Description of Data A

Number: 1

0.30977225079586523, 0.7109239808775746, 0.5020217228976303, 0.8304263180426128, 0.4856996589055056, 0.38813402940733555, 0.5027107790701709, 0.3838906278431695, 0.7742470006313475, 0.17443224809166813

Number: 2

0.7263663765063801, 0.8693096343897851, 0.28708646075368904, 0.0354586379586076, 0.6948953496678159, 0.933395528045399, 0.8834200840733146, 0.7509523923814644, 0.4377986969961859, 0.4025883839291815

Number: 3

0.758964135216965, 0.4048799935357248, 0.969627711789318, 0.630534144243811, 0.24507934517470686, 0.2729329616440951, 0.05879567458795354, 0.6689355049277234, 0.4068028509496866, 0.041596151225821054

Number: 4

0.3573796585595681, 0.045875160364987067, 0.24387864355337263, 0.743638309463084, 0.8186872869904467, 0.12707790111920114, 0.5753484536286515, 0.21358482502926446, 0.8738406602985939, 0.36370539672090874

Number: 5

0.7490296847051611, 0.5663768140270766, 0.44395499618639556, 0.41846982128727694, 0.042348560310602634, 0.9246889780581212, 0.46895615750282016, 0.6875417791286683, 0.4757239414399894, 0.10070407446766416

Description of Data B

1, 2, 3, 4

#

In [ ]: