## Tables ### Usage Requires Python 3.5 or greater and the [wcwidth library](https://pypi.org/project/wcwidth/), which users can install with: `pip3 install wcwidth`. Complete versions of all of the examples below and more can be found in the [test.py](test.py) file. Run with: `python3 test.py`. #### Output char array as table ```py import tables # Set array tables.array(array, None, None, headerrow=True, headercolumn=True) ``` Table cells can contain [Unicode characters](https://en.wikipedia.org/wiki/List_of_Unicode_characters), but not newlines and tabs. ![](../images/char%20array%20to%20table.png) #### Output array as table with separate header row and column ```py import tables headerrow = ["Header row/column 1", "Header row 2", "Header row 3", "Header row 4", "Header row 5"] headercolumn = ["Header column 2", "Header column 3", "Header column 4", "Header column 5"] # Set array tables.array(array, headerrow, headercolumn, headerrow=True, headercolumn=True) ``` Output same as example above. #### Output array as table ```py import tables # Set array tables.array(array, None, None) ``` ![](../images/array%20to%20table.png) #### Output sorted array as table ```py import tables # Set array sortdimension = 0 # Column to sort by array = sorted(array, key=lambda x: x[sortdimension]) tables.array(array, None, None) ``` ![](../images/sorted%20array%20to%20table.png) #### Output single function as table ```py import tables def afunction(x): return x + 1 xmin = -10 xmax = 10 xscl = 2 tables.function(xmin, xmax, xscl, afunction, headerrow=True) ``` ![](../images/function%20to%20table.png) #### Output multiple functions as table ```py import tables def function1(x): return 2 * x def function2(x): return x ** 2 xmin = -10 xmax = 10 xscl = 2 # Function parameter and return value can be any data type, as long as they are the same functions = [function1, function2] tables.functions(xmin, xmax, xscl, functions, headerrow=True) ``` ![](../images/multiple%20functions%20to%20table.png) ### Options #### Header row Option: `headerrow`\ Default value: `False` Header rows are bolded, centered and have a border. #### Header column Option: `headercolumn`\ Default value: `False` Header columns are bolded, centered and have a border. #### Table border Option: `tableborder`\ Default value: `False` #### Cell border Option: `cellborder`\ Default value: `False` #### Cell padding Option: `padding`\ Default value: `1` #### Alignment Option: `alignment`\ Values: * `False` (left, default) * `True` (right) #### Title Option: `title`\ Default value: `None` The title is word wrapped based on the current width of the terminal. Handles newlines, tabs and [Unicode characters](https://en.wikipedia.org/wiki/List_of_Unicode_characters). #### Border style Option: `style`\ Values: 0. ASCII ![](../images/ASCII%20table.png) 1. Basic ![](../images/basic%20table.png) 2. Light (default) ![](../images/light%20table.png) 3. Heavy ![](../images/heavy%20table.png) 4. Double ![](../images/double%20table.png) 5. Light Dashed ![](../images/light%20dashed%20table.png) 6. Heavy Dashed ![](../images/heavy%20dashed%20table.png) ## Graphs/Plots ### Usage Requires Python 3.5 or greater and the [wcwidth library](https://pypi.org/project/wcwidth/), which users can install with: `pip3 install wcwidth`. Complete versions of all of the examples below and more can be found in the [test.py](test.py) file. Run with: `python3 test.py`. If `height` is `0`, it will be set to the current height of the terminal (number of rows times four). If `width` is `0`, it will be set to the current width of the terminal (number of columns times two). #### Output array as plot ```py import graphs height = 160 width = 160 xmin = -20 xmax = 20 ymin = -20 ymax = 20 # Set array graphs.array(height, width, xmin, xmax, ymin, ymax, array) ``` If `xmin` and `xmax` are both `0`, they will be set to the respective minimum and maximum values of x in the array. If `ymin` and `ymax` are both `0`, they will be set to the respective minimum and maximum values of y in the array. ![](../images/array%20to%20plot.png) #### Output single function as graph ```py import graphs def afunction(x): return x + 1 height = 160 width = 160 xmin = -20 xmax = 20 ymin = -20 ymax = 20 graphs.function(height, width, xmin, xmax, ymin, ymax, afunction) ``` ![](../images/function%20to%20graph.png) #### Output multiple functions as graph ```py import graphs def function1(x): return 2 * x def function2(x): return x ** 2 height = 160 width = 160 xmin = -20 xmax = 20 ymin = -20 ymax = 20 # Function parameter and return value can be any data type, as long as they are the same functions = [function1, function2] graphs.functions(height, width, xmin, xmax, ymin, ymax, functions) ``` ![](../images/multiple%20functions%20to%20graph.png) ### Options #### Border/Axis Option: `border`\ Default value: `False` #### Axis labels Option: `axislabel`\ Default value: `False` Requires `border` to be `False`. #### Axis units labels Option: `axisunitslabel`\ Default value: `False` Requires `border` and `axislabel` to be `False`. #### Title Option: `title`\ Default value: `None` The title is word wrapped based on the current width of the terminal. Handles newlines, tabs and [Unicode characters](https://en.wikipedia.org/wiki/List_of_Unicode_characters). #### Axis/Border style Option: `style`\ Values: 0. ASCII ![](../images/ASCII%20graph.png) 1. Basic ![](../images/basic%20graph.png) 2. Light (default) ![](../images/light%20graph.png) 3. Heavy ![](../images/heavy%20graph.png) 4. Double ![](../images/double%20graph.png) 5. Light Dashed ![](../images/light%20dashed%20graph.png) 6. Heavy Dashed ![](../images/heavy%20dashed%20graph.png) #### Graph/Plot Color Option: `color`\ Values: 0. System default 1. Black 2. Red (default) 3. Green 4. Yellow 5. Blue 6. Cyan 7. Light gray 8. Dark gray 9. Light red 10. Light green 11. Light yellow 12. Light blue 13. Light cyan 14. White See [here](https://misc.flogisoft.com/bash/tip_colors_and_formatting#foreground_text) for examples of the colors. Only used for plots and when graphing a single function. When graphing multiple functions, colors `2` - `14` are used inorder. Color `0` is used where the functions cross. ##### Plot ![](../images/plot%20colors.png) ##### Graph ![](../images/graph%20colors.png)