.. | ||
graphs.py | ||
README.md | ||
tables.py | ||
test.py |
Tables
Usage
Requires Python 3.5 or greater and the wcwidth library, which users can install with: pip3 install wcwidth
. See the tables.py file for full usage information.
Complete versions of all of the examples below and more can be found in the test.py file.
Run with: python3 test.py
.
Output str array as table
import tables
# Set array
tables.array(array, headerrow=True, headercolumn=True)
Table cells can contain Unicode characters, but not newlines and tabs.
Output array as table with separate header row and column
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
import tables
# Set array, can be any sequence data type
tables.array(array)
Output sorted array as table
import tables
# Set array
sortdimension = 0 # Column to sort by
array = sorted(array, key=lambda x: x[sortdimension])
tables.array(array)
Output single function as table
import tables
def afunction(x):
return x + 1
xmin = -10
xmax = 10
xscl = 2
tables.function(xmin, xmax, xscl, afunction, headerrow=True)
Output lambda function as table
import tables
xmin = -10
xmax = 10
xscl = 2
afunction = lambda x: x + 1
tables.function(xmin, xmax, xscl, afunction, headerrow=True)
Output same as example above.
Output multiple functions as table
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)
Output multiple lambda functions as table
import tables
xmin = -10
xmax = 10
xscl = 2
# Function parameter and return value can be any data type, as long as they are the same
functions = [lambda x: 2 * x, lambda x: x ** 2]
tables.functions(xmin, xmax, xscl, functions, headerrow=True)
Output same as example above.
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.
Border style
Option: style
Values:
Graphs/Plots
Usage
Requires Python 3.5 or greater and the wcwidth library, which users can install with: pip3 install wcwidth
. See the graphs.py file for full usage information.
Complete versions of all of the examples below and more can be found in the 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 single array as plot
import graphs
height = 160
width = 160
xmin = -20
xmax = 20
ymin = -20
ymax = 20
# Set array, can be any sequence data type, but must have exactly two columns
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.
Use graphs.arrays()
to plot multiple arrays, which can be of different sizes.
Output single function as graph
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)
Output lambda function as graph
import graphs
height = 160
width = 160
xmin = -20
xmax = 20
ymin = -20
ymax = 20
afunction = lambda x: x + 1
graphs.function(height, width, xmin, xmax, ymin, ymax, afunction)
Output same as example above.
Output multiple functions as graph
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)
Output multiple lambda functions as graph
import graphs
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 = [lambda x: 2 * x, lambda x: x ** 2]
graphs.functions(height, width, xmin, xmax, ymin, ymax, functions)
Output same as example above.
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.
Axis/Border style
Option: style
Values:
Graph/Plot Color
Option: color
Values:
- System default
- Black
- Red (default)
- Green
- Yellow
- Blue
- Cyan
- Light gray
- Dark gray
- Light red
- Light green
- Light yellow
- Light blue
- Light cyan
- White
See here 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.