Folder full of pertinent coursework
Kernel: Python 2 (SageMath)
Julia Set Plotting Extension
Load module for a JuliaSet that conforms to the specified interface.
It is wise to run the test suite in test_juliaset.py
with nosetests
prior to attempting to plot here.
In [1]:
Load additional libraries needed for plotting and profiling.
In [2]:
Out[2]:
MIME type unknown not supported
Extend JuliaSet class with additional functionality.
In [3]:
Visualize a Julia set using matplotlib.
In [4]:
Out[4]:
CPU times: user 102 ms, sys: 7.26 ms, total: 109 ms
Wall time: 106 ms
CPU times: user 2.73 s, sys: 42.8 ms, total: 2.77 s
Wall time: 2.81 s
Visualize a different Julia set using Bokeh as an interactive Javascript plot.
In [5]:
Out[5]:
CPU times: user 91 ms, sys: 15.9 ms, total: 107 ms
Wall time: 105 ms
/ext/sage/sage-8.1/local/lib/python2.7/site-packages/bokeh/models/sources.py:137: BokehUserWarning: ColumnDataSource's columns must be of the same length. Current lengths: ('dh', 1), ('image', 1), ('x', 2)
"Current lengths: %s" % ", ".join(sorted(str((k, len(v))) for k, v in data.items())), BokehUserWarning))
/ext/sage/sage-8.1/local/lib/python2.7/site-packages/bokeh/models/sources.py:137: BokehUserWarning: ColumnDataSource's columns must be of the same length. Current lengths: ('dh', 1), ('image', 1), ('x', 2), ('y', 2)
"Current lengths: %s" % ", ".join(sorted(str((k, len(v))) for k, v in data.items())), BokehUserWarning))
/ext/sage/sage-8.1/local/lib/python2.7/site-packages/bokeh/models/sources.py:137: BokehUserWarning: ColumnDataSource's columns must be of the same length. Current lengths: ('dh', 1), ('dw', 1), ('image', 1), ('x', 2), ('y', 2)
"Current lengths: %s" % ", ".join(sorted(str((k, len(v))) for k, v in data.items())), BokehUserWarning))
WARNING: Some output was deleted.
In [6]:
Out[6]:
9582197 function calls in 5.195 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
443556 3.111 0.000 5.009 0.000 juliaset.py:14(iterate)
4569319 1.354 0.000 1.354 0.000 juliaset.py:11(juliamap)
4569319 0.544 0.000 0.544 0.000 {abs}
1 0.186 0.186 5.195 5.195 juliaset.py:32(generate)
1 0.000 0.000 5.195 5.195 <string>:1(<module>)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
In [7]:
Out[7]:
Timer unit: 1e-06 s
Total time: 9.71265 s
File: juliaset.py
Function: generate at line 32
Line # Hits Time Per Hit % Time Line Contents
==============================================================
32 def generate(self):
33 443557 9712654 21.9 100.0 self.set = [self.iterate(i) for i in self._complexplane]
34 1 1 1.0 0.0 return self.set