Initial commit
This commit is contained in:
commit
ce54c823b1
5 changed files with 292 additions and 0 deletions
2
Makefile
Normal file
2
Makefile
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
slides.pdf: slides.rst dark.style dark.png
|
||||
rst2pdf -b1 -s dark.style,fruity --fit-background-mode=scale slides.rst
|
||||
BIN
dark.png
Normal file
BIN
dark.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 275 B |
86
dark.style
Normal file
86
dark.style
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
pageSetup:
|
||||
size: null
|
||||
width: 16cm
|
||||
height: 9cm
|
||||
margin-top: 0cm
|
||||
margin-bottom: 0cm
|
||||
margin-left: 0cm
|
||||
margin-right: 0cm
|
||||
margin-gutter: 0cm
|
||||
spacing-header: 2mm
|
||||
spacing-footer: 2mm
|
||||
firstTemplate: standardPage
|
||||
|
||||
pageTemplates:
|
||||
standardPage:
|
||||
frames: []
|
||||
[3%, 3%, 94%, 94%]
|
||||
showHeader: false
|
||||
showFooter: false
|
||||
background: dark.png
|
||||
|
||||
linkColor: #add8e6
|
||||
|
||||
styles:
|
||||
normal:
|
||||
fontSize: 10
|
||||
textColor: white
|
||||
|
||||
bodytext:
|
||||
alignment: TA_LEFT
|
||||
hyphenation: false
|
||||
spaceBefore: 3
|
||||
|
||||
titleslideinfo:
|
||||
parent: normal
|
||||
alignment: TA_CENTER
|
||||
|
||||
literal:
|
||||
textColor: silver
|
||||
|
||||
table:
|
||||
commands: []
|
||||
[ROWBACKGROUNDS, [0, 0], [-1, -1], [#333333, black]]
|
||||
|
||||
table-heading:
|
||||
parent: heading
|
||||
backColor: black
|
||||
alignment : TA_LEFT
|
||||
|
||||
code:
|
||||
parent: literal
|
||||
fontSize: 11
|
||||
leftIndent: 0
|
||||
spaceBefore: 8
|
||||
spaceAfter: 8
|
||||
backColor: #333333
|
||||
|
||||
bullet-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
commands: []
|
||||
[VALIGN, [0, 0], [-1, -1], TOP]
|
||||
[TOPPADDING, [0, 0], [-1, -1], 0]
|
||||
[BOTTOMPADDING, [0, 0], [-1, -1], 0]
|
||||
|
||||
endnote:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
colWidths: [3cm, null]
|
||||
|
||||
field-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
|
||||
item-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 6
|
||||
commands: []
|
||||
[VALIGN, [0, 0], [-1, -1], TOP]
|
||||
[TOPPADDING, [0, 0], [-1, -1], 5]
|
||||
[BOTTOMPADDING, [0, 0], [-1, -1], 20]
|
||||
[RIGHTPADDING, [0, 0], [1, -1], 0]
|
||||
|
||||
option-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
46
debug.style
Normal file
46
debug.style
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
styles:
|
||||
bullet-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
commands: []
|
||||
[VALIGN, [0, 0], [-1, -1], TOP]
|
||||
[TOPPADDING, [0, 0], [-1, -1], 0]
|
||||
[BOTTOMPADDING, [0, 0], [-1, -1], 0]
|
||||
[INNERGRID, [0, 0], [-1, -1], 0.25, red]
|
||||
[BOX, [0, 0], [-1, -1], 0.25, red]
|
||||
|
||||
endnote:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
colWidths: [3cm, null]
|
||||
commands: []
|
||||
[INNERGRID, [0, 0], [-1, -1], 0.25, orange]
|
||||
[BOX, [0, 0], [-1, -1], 0.25, orange]
|
||||
|
||||
field-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
commands: []
|
||||
[INNERGRID, [0, 0], [-1, -1], 0.25, green]
|
||||
[BOX, [0, 0], [-1, -1], 0.25, green]
|
||||
|
||||
item-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
commands: []
|
||||
[VALIGN, [0, 0], [-1, -1], TOP]
|
||||
[TOPPADDING, [0, 0], [-1, -1], 0]
|
||||
[BOTTOMPADDING, [0, 0], [-1, -1], 20]
|
||||
[RIGHTPADDING, [0, 0], [1, -1], 0]
|
||||
[INNERGRID, [0, 0], [-1, -1], 0.25, gray]
|
||||
[BOX, [0, 0], [-1, -1], 0.25, gray]
|
||||
|
||||
|
||||
|
||||
option-list:
|
||||
spaceBefore: 0
|
||||
spaceAfter: 0
|
||||
commands: []
|
||||
[INNERGRID, [0, 0], [-1, -1], 0.25, blue]
|
||||
[BOX, [0, 0], [-1, -1], 0.25, blue]
|
||||
|
||||
158
slides.rst
Normal file
158
slides.rst
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
Plotting with Matplotlib
|
||||
------------------------
|
||||
|
||||
Also creating a presentation with rst2pdf
|
||||
=========================================
|
||||
|
||||
Data Structures
|
||||
---------------
|
||||
Favour simpler data structures if they do what you need. In order:
|
||||
|
||||
#. Built-in Lists
|
||||
- 2xN data or simpler
|
||||
- Can't install system dependencies
|
||||
#. Numpy arrays
|
||||
- 2 (or higher) dimensional data
|
||||
- Lots of numerical calculations
|
||||
#. Pandas series/dataframes
|
||||
- 'Data Wrangling', reshaping, merging, sorting, querying
|
||||
- Importing from complex formats
|
||||
|
||||
Shamelessly stolen from https://stackoverflow.com/a/45288000
|
||||
|
||||
Loading Data from Disk
|
||||
----------------------
|
||||
Natively
|
||||
========
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> import csv
|
||||
>>> with open('eggs.csv', newline='') as csvfile:
|
||||
... spam = csv.reader(csvfile,
|
||||
... delimiter=' ',
|
||||
... quotechar='|')
|
||||
... for row in spam:
|
||||
... # Do things
|
||||
... pass
|
||||
|
||||
Loading Data from Disk
|
||||
----------------------
|
||||
Numpy
|
||||
=====
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> import numpy
|
||||
>>> spam = numpy.genfromtxt('eggs.csv',
|
||||
... delimiter=' ',
|
||||
... dtype=None) # No error handling!
|
||||
>>> for row in spam:
|
||||
... # Do things
|
||||
... pass
|
||||
|
||||
``numpy.genfromtxt`` will try to infer the datatype of each column if
|
||||
``dtype=None`` is set.
|
||||
|
||||
``numpy.loadtxt`` is generally faster at runtime if your data is well formated
|
||||
(no missing values, only numerical data or constant length strings)
|
||||
|
||||
Loading Data from Disk
|
||||
----------------------
|
||||
Numpy NB.
|
||||
=========
|
||||
**Remind me to look at some actual numpy usage at the end**
|
||||
|
||||
- I think numpy does some type coercion when creating arrays.
|
||||
- Arrays created by ``numpy.genfromtxt`` can not in general be indexed like
|
||||
``data[xstart:xend, ystart:yend]``.
|
||||
- Data of unequal types are problematic! Pandas *may* be a better choice in
|
||||
that case.
|
||||
- Specifying some value for ``dtype`` is probably necessary in most cases in
|
||||
practice: https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
|
||||
|
||||
Loading Data from Disk
|
||||
----------------------
|
||||
Pandas
|
||||
======
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> import pandas
|
||||
>>> # dtype=None is def
|
||||
>>> spam = pandas.read_csv('eggs.csv',
|
||||
... delimiter=' ',
|
||||
... header=None)
|
||||
>>> for row in spam:
|
||||
... # Do things
|
||||
... pass
|
||||
|
||||
``header=None`` is required if the flie does not have a header.
|
||||
|
||||
|
||||
|
||||
Generating Data for Testing
|
||||
---------------------------
|
||||
|
||||
Generating the data on the fly with numpy is convenient.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> import numpy.random as ran
|
||||
>>> # For repeatability
|
||||
>>> ran.seed(7890234)
|
||||
>>> # Uniform [0, 1) floats
|
||||
>>> data = ran.rand(100, 2)
|
||||
>>> # Uniform [0, 1) floats
|
||||
>>> data = ran.rand(100, 100, 100)
|
||||
>>> # Std. normal floats
|
||||
>>> data = ran.randn(100)
|
||||
>>> # 3x14x15 array of binomial ints with n = 100, p = 0.1
|
||||
>>> data = ran.binomial(100, 0.1, (3, 14, 15))
|
||||
|
||||
Plotting Time Series
|
||||
--------------------
|
||||
|
||||
Plot data of the form:
|
||||
|
||||
.. math:: y=f(t)
|
||||
|
||||
|
||||
Subplots
|
||||
--------
|
||||
|
||||
|
||||
Saving Plots
|
||||
------------
|
||||
|
||||
So far I've just displayed plots with ``plt.show()``. You can actually save
|
||||
the plots from that interface manually, but when scripting, it's convenient
|
||||
to do so automatically:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> # Some plotting has previously occured
|
||||
>>> plt.savefig('eggs.pdf', dpi=300, transparent=False)
|
||||
|
||||
The output format is interpreted from the file extension.
|
||||
The keyword arguments are optional here. Other options exist.
|
||||
|
||||
Error Bars
|
||||
----------
|
||||
|
||||
|
||||
Stacked Bar Graph
|
||||
-----------------
|
||||
|
||||
|
||||
Resources
|
||||
---------
|
||||
NumPy User Guide: https://docs.scipy.org/doc/numpy/user/index.html
|
||||
|
||||
NumPy Reference: https://docs.scipy.org/doc/numpy/reference/index.html#reference
|
||||
|
||||
Matplotlib example gallery: https://matplotlib.org/gallery/index.html
|
||||
|
||||
Pandas: It probably exists. Good luck.
|
||||
|
||||
This presentation: https://git.friedersdorff.com/max/plotting_with_matplotlib.git
|
||||
Loading…
Add table
Reference in a new issue