A plotting backend for the TimeSeriesQL library
Project description
TimeSeriesQL-Matplotlib
A plotting backend for the TimeSeriesQL library
Table of Contents
About The Project
This project adds a matplotlib plotting backend for the TimeSeriesQL project.
Built With
Getting Started
To get a local copy up and running follow these simple steps.
Prerequisites
The requirements are in the requirements.txt file.
Installation
pip
pip install timeseriesql-matplotlib
manual
- Clone the timeseriesql-matplotlib
git clone https:://github.com/mbeale/timeseriesql-matplotlib.git
- Install library
cd timeseriesql-matplotlib
python setup.py install
Usage
The charting library operates on TimeSeries objects. The Axes can be overriden to control the placement of the charts. All the below examples use the following code:
import matplotlib.pyplot as plt
from timeseriesql_matplotlib import MatplotlibTQL as mp
from timeseriesql.backends.csv_backend import CSVBackend
data = CSVBackend(x for x in "AAPL.csv")[:] #CSV of AAPL stock data header = (open, close, high, low, adj close)
Line Plot
mp().line_plot(data)
plt.show()
Stacked Plot
mp().stacked_plot(data)
plt.show()
Timebox Plot
mp().line_plot(data)
timebox_plot(data[:,0])
"""
the plot arguement defaults to auto but you can set a specific period
s - second buckets
m - minute buckets
h - hour buckets
d - day buckets
mth - month buckets
y - year buckets
"""
Distribution Plot
mp().dist_plot(data[:,0], percentiles=[25,75]) #percentiles are optional
plt.show()
Correlogram Plot
mp().correlogram_plot(data)
plt.show()
Text Plot
mp().line_plot(data)
mp().text_plot(data[-1,0], title="A Nice Text Box", thresholds=[(0, 'green', 'white'), (20, 'cornflowerblue', 'white'), (None, 'darkorange', 'white')])
Layout Example
from matplotlib.gridspec import GridSpec
fig = plt.figure(constrained_layout=True, figsize=(20,20))
gs = GridSpec(4, 4, figure=fig)
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[0, 2])
ax4 = fig.add_subplot(gs[0, 3])
ax5 = fig.add_subplot(gs[1:3, :3])
ax6 = fig.add_subplot(gs[1, 3])
ax7 = fig.add_subplot(gs[2, 3])
ax8 = fig.add_subplot(gs[3, :2])
ax9 = fig.add_subplot(gs[3, 2:])
mp().text_plot(data[:,0].mean(), ax=ax1, title="Avg Close")
mp().text_plot(data[:,1].mean(), ax=ax2, title="Avg High")
mp().text_plot(data[:,2].mean(), ax=ax3, title="Avg Low")
mp().line_plot(data[:,0], ax = ax4)
mp().line_plot(data, ax=ax5)
mp().line_plot(data[:,1], ax=ax6)
mp().line_plot(data[:,2], ax=ax7)
mp().line_plot(data[:,3], ax=ax8)
mp().line_plot(data[:,4], ax=ax9)
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Michael Beale - michael.beale@gmail.com
Project Link: https://github.com/mbeale/timeseriesql-matplotlib
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for timeseriesql-matplotlib-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4ec0b6b12bfd626fd161714ba496b7a5d94865b061a636046f0410535481101 |
|
MD5 | b72fb219d1721cd822326762f8d23edf |
|
BLAKE2b-256 | 59a253ecd77aa47579160781a7989daae0d8ff30ef3156141789b176327731d8 |
Hashes for timeseriesql_matplotlib-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f62747fee66084d518b3e589a1891d5b47e626e713b8afbec3593097607eb837 |
|
MD5 | c08f9b2052ca442c2323e46dc9041fb3 |
|
BLAKE2b-256 | 68953ba245f690c63cad9ae82003ca1a708fe904c9eb0dca9240a200545a787c |