Showing preview only (362K chars total). Download the full file or copy to clipboard to get everything.
Repository: julkaar9/pynimate
Branch: main
Commit: 79962b8a8a16
Files: 53
Total size: 344.4 KB
Directory structure:
gitextract_lfc_djcb/
├── .github/
│ └── workflows/
│ ├── deploy.yml
│ ├── publish.yml
│ └── tests.yml
├── .gitignore
├── LICENSE
├── MANIFEST.in
├── README.md
├── docs/
│ ├── guide/
│ │ ├── dark_mode.md
│ │ ├── lineplot_darkmode.md
│ │ └── starter.md
│ ├── index.md
│ └── reference/
│ ├── barhplot.md
│ ├── barplot.md
│ ├── baseplot.md
│ ├── canvas.md
│ ├── datafiers/
│ │ ├── bar_datafier.md
│ │ ├── base_datafier.md
│ │ ├── datafier.md
│ │ └── line_datafier.md
│ ├── lineplot.md
│ └── utils.md
├── examples/
│ ├── __init__.py
│ ├── data/
│ │ ├── covid_IN.csv
│ │ ├── data.csv
│ │ ├── map.csv
│ │ └── sample.csv
│ ├── example1.py
│ ├── example2.py
│ ├── example3.py
│ ├── lineplot_dark1.py
│ └── lineplot_ex1.py
├── mkdocs.yml
├── pyproject.toml
├── requirements.txt
├── setup.py
├── src/
│ └── pynimate/
│ ├── __init__.py
│ ├── __init__.pyi
│ ├── bar.py
│ ├── barhplot.py
│ ├── baseplot.py
│ ├── canvas.py
│ ├── datafier.py
│ ├── lineplot.py
│ └── utils.py
└── tests/
├── __init__.py
├── conftest.py
├── data/
│ └── map.csv
├── test_bar.py
├── test_barhplot.py
├── test_baseplot.py
├── test_datafier.py
├── test_lineplot.py
└── test_utils.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/deploy.yml
================================================
name: ci
on:
push:
branches:
- main
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: actions/cache@v2
with:
key: ${{ github.ref }}
path: .cache
- run: |
pip install -e .
pip install mkdocs-material
pip install "mkdocstrings[python]"
- run: mkdocs gh-deploy --force
================================================
FILE: .github/workflows/publish.yml
================================================
name: Build distribution
on: [push, pull_request, workflow_dispatch]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install build dependencies
run: |
pip install --upgrade pip
pip install --upgrade build wheel setuptools
- name: Build distributions
run: python -m build
- name: Publish package to PyPI
if: github.repository == 'julkaar9/pynimate' && github.event_name =='push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
================================================
FILE: .github/workflows/tests.yml
================================================
name: Tests
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install -e .
- name: Lint with flake8
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest
================================================
FILE: .gitignore
================================================
legacy/*
examples/data/ccodes.csv
examples/data/cn_dict.csv
examples/data/data2.csv
examples/data/mapdata.csv
examples/test.py
examples/example4.py
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
.vscode/
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2022 Md Julkarnaeen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: MANIFEST.in
================================================
include README.md
================================================
FILE: README.md
================================================

# Pynimate
[](https://pypi.org/project/pynimate/)
[](https://pepy.tech/project/pynimate)

[](https://github.com/julkaar9/pynimate/blob/main/LICENSE)
[](https://github.com/psf/black)
Python package for statistical data animations.


## Installation
### with pip
Pynimate is avaialbe at [pypi](https://pypi.org/project/pynimate/)
``` sh
pip install pynimate
```
## How to use
Pynimate expects pandas dataframe formatted in this manner:
Where the time column is set to index.
```python
time, col1, col2, col3
2012 1 2 1
2013 1 1 2
2014 2 1.5 3
2015 2.5 2 3.5
```
## Bar Chart Example
```python
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
df = pd.DataFrame(
{
"time": ["1960-01-01", "1961-01-01", "1962-01-01"],
"Afghanistan": [1, 2, 3],
"Angola": [2, 3, 4],
"Albania": [1, 2, 5],
"USA": [5, 3, 4],
"Argentina": [1, 4, 5],
}
).set_index("time")
cnv = nim.Canvas()
bar = nim.Barhplot.from_df(df, "%Y-%m-%d", "2d")
bar.set_time(callback=lambda i, datafier: datafier.data.index[i].year)
cnv.add_plot(bar)
cnv.animate()
plt.show()
```
## Documentation
The official documentation : https://julkaar9.github.io/pynimate/
## License
[MIT License (MIT)](LICENSE)
================================================
FILE: docs/guide/dark_mode.md
================================================
# Creating a dark themed bar chart race
## The data
We will use the previous data for this animation
```py
df = pd.DataFrame(
{
"time": ["1960-01-01", "1961-01-01", "1962-01-01"],
"Afghanistan": [1, 2, 3],
"Angola": [2, 3, 4],
"Albania": [1, 2, 5],
"USA": [5, 3, 4],
"Argentina": [1, 4, 5],
}
).set_index("time")
```
## Additional variables
There might be situations where we would like to show additional information for each column or date.
For instance in the previous data we would like to show continents of each country.
In such cases use a Dataframe containing the additional variables in this format.
```python
columns, continents
"Afghanistan", "Asia"
"Angola", "Africa"
"Albania", "Europe"
"USA", "N America"
"Argentina" "S America"
```
This is a column-wise data where the index is the columns of the original data
```python
col_var = pd.DataFrame(
{
"columns": ["Afghanistan", "Angola", "Albania", "USA", "Argentina"],
"continent": ["Asia", "Africa", "Europe", "N America", "S America"],
}
).set_index("columns")
```
Similarly we can use a row-wise data where the index is same as the original data.
```py
time leap-year var2 ...
"1960-01-01" "yes" 0
"1961-01-01" "no" 3
"1962-01-01" "no" 0
```
use the `dfr.add_var(col_var=col_var)` module to add these dataframes.
## post_update
`post_update(self, i)` is a function that runs for every frame. It is very useful for extending
the basic animation. In this example we will use `post_update` to annotate continent names on bars.
```py
def post_update(self, i):
# annotates continents next to bars
for ind, (bar, x, y) in enumerate(
zip(self.bar_attr.top_cols, self.bar_attr.bar_length, self.bar_attr.bar_rank)
):
self.ax.text(
x - 0.3,
y,
self.dfr.col_var.loc[bar, "continent"],
ha="right",
color="k",
size=12,
zorder=ind,
)
```
## Changing colors
All the text colors are set to white and the background color is made dark blue ("#001219").
```py
...
bar.set_title("Sample Title", color="w", weight=600)
bar.set_xlabel("xlabel", color="w")
...
```
We have also manually set colors for each bar.
```py
bar_cols = {
"Afghanistan": "#2a9d8f",
"Angola": "#e9c46a",
"Albania": "#e76f51",
"USA": "#a7c957",
"Argentina": "#e5989b",
}
```
## The final code
```py
import os
import matplotlib as mpl
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
dir_path = os.path.dirname(os.path.realpath(__file__))
mpl.rcParams["axes.facecolor"] = "#001219"
# Turning off the spines
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
def post_update(self, i):
# annotates continents next to bars
for ind, (bar, x, y) in enumerate(
zip(self.bar_attr.top_cols, self.bar_attr.bar_length, self.bar_attr.bar_rank)
):
self.ax.text(
x - 0.3,
y,
self.dfr.col_var.loc[bar, "continent"],
ha="right",
color="k",
size=12,
zorder=ind,
)
df = pd.read_csv(dir_path + "/data/sample.csv").set_index("time")
col_var = pd.DataFrame(
{
"columns": ["Afghanistan", "Angola", "Albania", "USA", "Argentina"],
"continent": ["Asia", "Africa", "Europe", "N America", "S America"],
}
).set_index("columns")
bar_cols = {
"Afghanistan": "#2a9d8f",
"Angola": "#e9c46a",
"Albania": "#e76f51",
"USA": "#a7c957",
"Argentina": "#e5989b",
}
cnv = nim.Canvas(figsize=(12.8, 7.2), facecolor="#001219")
dfr = nim.BarDatafier(df, "%Y-%m-%d", "3d")
dfr.add_var(col_var=col_var)
bar = nim.Barhplot(dfr, post_update=post_update, rounded_edges=True, grid=False)
bar.set_column_colors(bar_cols)
bar.set_title("Sample Title", color="w", weight=600)
bar.set_xlabel("xlabel", color="w")
bar.set_time(
callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"), color="w"
)
bar.set_text(
"sum",
callback=lambda i, datafier: f"Total :{np.round(datafier.data.iloc[i].sum(), 2)}",
size=20,
x=0.72,
y=0.20,
color="w",
)
bar.set_bar_annots(color="w", size=13)
bar.set_xticks(colors="w", length=0, labelsize=13)
bar.set_yticks(colors="w", labelsize=13)
bar.set_bar_border_props(
edge_color="black", pad=0.1, mutation_aspect=1, radius=0.2, mutation_scale=0.6
)
cnv.add_plot(bar)
cnv.animate()
plt.show()
```
## Result!

================================================
FILE: docs/guide/lineplot_darkmode.md
================================================
# Creating a dark themed Animated Line plot
## The data
We will be using [Covid 19 data from kaggle by 'SRK and Devakumar K. P'](https://www.kaggle.com/datasets/sudalairajkumar/covid19-in-india?select=covid_19_india.csv). You can use the already cleaned data from examples/data/Covid_IN.
|date |cases|cured|
|----------|-----|-----|
|2020-03-28|185.0|13.0 |
|2020-03-29|115.0|16.0 |
|2020-03-30|181.0|6.0 |
|2020-03-31|154.0|22.0 |
|2020-04-01|475.0|20.0 |
|2020-04-02|235.0|12.0 |
|2020-04-03|401.0|10.0 |
## Theming
Let us setup the colors for the lineplot. We will be using `#001219` as the canvas color.
```python
#Customizing matplotlib
import matplotlib as mpl
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
mpl.rcParams["figure.facecolor"] = "#001219"
mpl.rcParams["axes.facecolor"] = "#001219"
mpl.rcParams["savefig.facecolor"] = "#001219"
```
We will also set all text colors to white.
## post_update
`post_update(self, i)` is a function that runs for every frame. It is very useful for extending
the basic animation. In this example we will use `post_update` to format the xtick labels.
`human_readable` converts large numbers to human readable format.
```py
def post(self, i):
self.ax.yaxis.set_major_formatter(
tick.FuncFormatter(lambda x, pos: human_readable(x))
)
```
## Customizing line styles
Use `.set_column_linestyles()` to set linestyles. We will set 'cases' to solid and 'cured' to dashed.
```py
#Linestyle defaults to solid
plot.set_column_linestyles({"cured": "dashed"})
```
## The final code
```py
import os
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.ticker as tick
import pandas as pd
import pynimate as nim
from pynimate.utils import human_readable
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
mpl.rcParams["figure.facecolor"] = "#001219"
mpl.rcParams["axes.facecolor"] = "#001219"
mpl.rcParams["savefig.facecolor"] = "#001219"
dir_path = os.path.dirname(os.path.realpath(__file__))
def post(self, i):
self.ax.yaxis.set_major_formatter(
tick.FuncFormatter(lambda x, pos: human_readable(x))
)
df = pd.read_csv(dir_path + "/data/covid_IN.csv").set_index("time")
cnv = nim.Canvas()
dfr = nim.LineDatafier(df, "%Y-%m-%d", "12h")
plot = nim.Lineplot(
dfr,
post_update=post,
palettes=["Set3"],
scatter_markers=False,
legend=True,
fixed_ylim=True,
grid=False,
)
plot.set_column_linestyles({"cured": "dashed"})
plot.set_title("Covid cases India(2021)", y=1.05, color="w", weight=600)
plot.set_xlabel("xlabel", color="w")
plot.set_time(
callback=lambda i, datafier: datafier.data.index[i].strftime("%d %b, %Y"),
color="w",
size=15,
)
plot.set_line_annots(lambda col, val: f"({human_readable(val)})", color="w")
plot.set_legend(labelcolor="w")
plot.set_text(
"sum",
callback=lambda i, datafier: f"Total cases :{human_readable(datafier.data.cases.iloc[:i+1].sum() )}",
size=10,
x=0.8,
y=0.20,
color="w",
)
plot.set_xticks(colors="w", length=0, labelsize=10)
plot.set_yticks(colors="w", labelsize=10)
cnv.add_plot(plot)
cnv.animate()
cnv.save("lineplot_dark", 24)
plt.show()
```
(note: this gif has gone through some size and frame reduction, so you should get a better looking animation)
## Result!

================================================
FILE: docs/guide/starter.md
================================================
# Welcome to pynimate
Pynimate is a python package for statistical data animations.
## Installation
### with pip
You can install pynimate using [`pip`][pip]
[pip]: https://pypi.org/project/pynimate/
``` sh
pip install pynimate
```
## Import
Pynimate is generally imported as `nim` and this convention is followed throughout the documentation.
``` python
import pynimate as nim
```
## Canvas
The Canvas class is used as a base for the animations, it handles the matplotlib figure, subplots
as well as creating and saving animations.
## Basic Animations
We will go through some basic data animations using pynimate.
## Bar Chart Race
Create a Bar Chart Race using the `Barhplot` module.
Pandas is a dependency and used for data manipulation, your data have to be a pandas `DataFrame`.
The data needs to be in the following format,
where the time column is set to index.
```python
time, col1, col2, col3
2012 1 2 1
2013 1 1 2
2014 2 1.5 3
2015 2.5 2 3.5
```
### Pandas setup
Use pandas to import your data and set the time column as index.
```python
import pandas as pd
df = pd.read_csv('data.csv').set_index('time')
```
Here is a sample data that we will work with.
```py
df = pd.DataFrame(
{
"time": ["1960-01-01", "1961-01-01", "1962-01-01"],
"Afghanistan": [1, 2, 3],
"Angola": [2, 3, 4],
"Albania": [1, 2, 5],
"USA": [5, 3, 4],
"Argentina": [1, 4, 5],
}
).set_index("time")
```
### Datafiers
Datafiers or Data Modifiers are helper modules that handles the data preparation part.
The dafafier for Barhplot is BarDatafier
### Barhplot
Barhplot can be initialized in two different ways
either by passing the BarDatafier
```py
dfr = nim.BarDatafier(df, "%Y-%m-%d", "2d")
bar = nim.Barhplot(dfr)
```
or by passing the pandas dataframe directly
```py
bar = nim.Barhplot.from_df(df, "%Y-%m-%d", "2d")
```
In both case there are three required arguments.
`data`: The data to be plotted and animated.
`time_format`: The date-time format of the data index. In our case it is `"%Y-%m-%d"`.
`ip_freq`: The interpolation frequency. Most data in their original form are not suitable for animations, Why?
Lets understand the absolute basics of these animations. Consider this data:
```python
time, col1, col2
2012 1 3
2013 2 2
2014 3 1
```
This will yield three bar plots, one for each row. Now a typical video is of 24 fps, i.e every second consists of 24 frames.
or in our case each second should consist of 24 images of static plots.
So if we were to plot this, the video would be 3/24 second long.
This is where interpolation(Linear) comes to play, if we were to interpolate the data quarterly,
The new data will be
```py
time col1 col2
2012-01-01 1.00 3.00
2012-04-01 1.25 2.75
2012-07-01 1.50 2.50
2012-10-01 1.75 2.25
2013-01-01 2.00 2.00
2013-04-01 2.25 1.75
2013-07-01 2.50 1.50
2013-10-01 2.75 1.25
2014-01-01 3.00 1.00
```
Now we have 9 rows, so our video will be 9/24 seconds long.
In general you will be plotting a much larger data, so your video will be much larger.
The interpolation is mostly used to make the video smooth.
You might wonder whether this interpolation will misrepresent the plot. Considering there is no way to
know what the original values are between the actual intervals.
That is something for the user to decide. If your data is large enough, you wont need interpolation.
In such case set `ip_freq = None`.
Now that the fundamentals are discussed, use Barplot to create the animation.
```py
# import matplotlib if you wish to see the animation in gui
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
df = pd.DataFrame(
{
"time": ["1960-01-01", "1961-01-01", "1962-01-01"],
"Afghanistan": [1, 2, 3],
"Angola": [2, 3, 4],
"Albania": [1, 2, 5],
"USA": [5, 3, 4],
"Argentina": [1, 4, 5],
}
).set_index("time")
cnv = nim.Canvas()
# Interpolation frequency is 2 days
bar = nim.Barhplot.from_df(df, "%Y-%m-%d", "2d")
# use set_time to draw the datetime in the canvas
# here we are using a callback that returns datetime formatted in month, year
bar.set_time(callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"))
# add the bar plot to the canvas
cnv.add_plot(bar)
cnv.animate()
plt.show()
```
### Save the animation
Use `Canvas.save()` to save the animation.
#### As GIF
Matplotlib uses pillow under the hood to save gifs, however you can use writer of your choice.
```py
cnv.save("file", 24, "gif")
```
#### As mp4
`ffmpeg` is a standard writer for saving as mp4
```py
pip install ffmpeg-python
```
or
```py
conda install ffmpeg
```
Use `Canvas.save()` to save the animation
```py
cnv.save("file", 24 ,"mp4")
```
## Result!

================================================
FILE: docs/index.md
================================================

# Pynimate
[](https://pypi.org/project/pynimate/)
[](https://pepy.tech/project/pynimate)

[](https://github.com/julkaar9/pynimate/blob/main/LICENSE)
[](https://github.com/psf/black)
Python package for statistical data animations.
## Installation
### with pip
You can install pynimate using [`pip`][pip]
[pip]: https://pypi.org/project/pynimate/
``` sh
pip install pynimate
```
## How to use
Pynimate expects pandas dataframe formatted in this manner:
Where the time column is set to index.
```python
time, col1, col2, col3
2012 1 2 1
2013 1 1 2
2014 2 1.5 3
2015 2.5 2 3.5
```
## Bar Chart Example
```python
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
df = pd.DataFrame(
{
"time": ["1960-01-01", "1961-01-01", "1962-01-01"],
"Afghanistan": [1, 2, 3],
"Angola": [2, 3, 4],
"Albania": [1, 2, 5],
"USA": [5, 3, 4],
"Argentina": [1, 4, 5],
}
).set_index("time")
cnv = nim.Canvas()
bar = nim.Barhplot.from_df(df, "%Y-%m-%d", "2d")
bar.set_time(callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"))
cnv.add_plot(bar)
cnv.animate()
plt.show()
```

================================================
FILE: docs/reference/barhplot.md
================================================
# Barhplot
See Baseplot for inherited modules.
## Barhplot
::: pynimate.barhplot.Barhplot
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- from_df
- get_ith_bar_attrs
- set_xylim
- set_barh
- set_bar_annots
- set_bar_border_props
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/barplot.md
================================================
# Barplot
*Barplot is deprecated, use barhplot instead.*
## Barplot
::: pynimate.bar.Barplot
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- add_var
- set_bar_color
- getTopXY
- set_xylim
- set_title
- set_xlabel
- set_time
- set_text
- remove_text
- set_bar_border_props
- set_barh
- set_xticks
- set_yticks
- set_grid
- set_bar_annots
- add_extras
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/baseplot.md
================================================
# Baseplot
## Baseplot
::: pynimate.baseplot.Baseplot
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- from_df
- generate_column_colors
- set_column_colors
- set_xylim
- set_title
- set_xlabel
- set_time
- set_text
- remove_text
- set_xticks
- set_yticks
- set_grid
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/canvas.md
================================================
# Canvas
## Canvas
::: pynimate.canvas.Canvas
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- add_plot
- animate
- save
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/datafiers/bar_datafier.md
================================================
# BarDatafier
## BarDatafier
::: pynimate.datafier.BarDatafier
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- get_data_ranks
- get_top_cols
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/datafiers/base_datafier.md
================================================
# BaseDatafier
## BaseDatafier
::: pynimate.datafier.BaseDatafier
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- add_var
- interpolate_even
- interpolate_data
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/datafiers/datafier.md
================================================
# Datafier
*Datafier is deprecated, use plot specific datafiers instead.*
## Datafier
::: pynimate.datafier.Datafier
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- add_var
- interpolate_even
- get_prepared_data
- get_top_cols
- get_bar_colors
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/datafiers/line_datafier.md
================================================
# LineDatafier
## LineDatafier
::: pynimate.datafier.LineDatafier
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- prepare_data
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/lineplot.md
================================================
# Lineplot
See Baseplot for inherited modules.
## Lineplot
::: pynimate.lineplot.Lineplot
handler: python
options:
docstring_style: numpy
merge_init_into_class: true
members:
- from_df
- set_column_linestyles
- set_line
- set_line_annots
- set_line_head
- set_marker
- set_legend
show_root_heading: false
show_source: false
================================================
FILE: docs/reference/utils.md
================================================
# Helper Functions
## Utils
::: pynimate.utils
handler: python
options:
docstring_style: numpy
members:
- human_readable
show_root_heading: false
show_source: false
================================================
FILE: examples/__init__.py
================================================
================================================
FILE: examples/data/covid_IN.csv
================================================
time,cases,cured
2020-01-30,,0.0
2020-01-31,0.0,0.0
2020-02-01,1.0,0.0
2020-02-02,1.0,0.0
2020-02-03,0.0,0.0
2020-02-04,0.0,0.0
2020-02-05,0.0,0.0
2020-02-06,0.0,0.0
2020-02-07,0.0,0.0
2020-02-08,0.0,0.0
2020-02-09,0.0,0.0
2020-02-10,0.0,0.0
2020-02-11,0.0,0.0
2020-02-12,0.0,0.0
2020-02-13,0.0,0.0
2020-02-14,0.0,0.0
2020-02-15,0.0,0.0
2020-02-16,0.0,0.0
2020-02-17,0.0,0.0
2020-02-18,0.0,0.0
2020-02-19,0.0,0.0
2020-02-20,0.0,0.0
2020-02-21,0.0,0.0
2020-02-22,0.0,0.0
2020-02-23,0.0,0.0
2020-02-24,0.0,0.0
2020-02-25,0.0,0.0
2020-02-26,0.0,0.0
2020-02-27,0.0,0.0
2020-02-28,0.0,0.0
2020-02-29,0.0,0.0
2020-03-01,0.0,0.0
2020-03-02,2.0,0.0
2020-03-03,1.0,3.0
2020-03-04,22.0,0.0
2020-03-05,2.0,0.0
2020-03-06,1.0,0.0
2020-03-07,3.0,0.0
2020-03-08,5.0,0.0
2020-03-09,7.0,0.0
2020-03-10,12.0,0.0
2020-03-11,2.0,0.0
2020-03-12,14.0,0.0
2020-03-13,7.0,0.0
2020-03-14,3.0,7.0
2020-03-15,26.0,6.5
2020-03-16,4.0,0.0
2020-03-17,23.0,1.0
2020-03-18,14.0,0.0
2020-03-19,22.0,6.0
2020-03-20,50.0,3.0
2020-03-21,60.0,0.0
2020-03-22,77.0,1.0
2020-03-23,73.0,0.0
2020-03-24,86.0,16.0
2020-03-25,87.0,3.0
2020-03-26,88.0,2.0
2020-03-27,30.0,22.0
2020-03-28,185.0,13.0
2020-03-29,115.0,16.0
2020-03-30,181.0,6.0
2020-03-31,154.0,22.0
2020-04-01,475.0,20.0
2020-04-02,235.0,12.0
2020-04-03,401.0,10.0
2020-04-04,602.0,50.0
2020-04-05,505.0,62.0
2020-04-06,704.0,44.0
2020-04-07,508.0,34.0
2020-04-08,485.0,58.0
2020-04-09,591.0,67.0
2020-04-10,896.0,38.0
2020-04-11,768.0,137.0
2020-04-12,918.0,112.0
2020-04-13,905.0,215.0
2020-04-14,1463.0,210.0
2020-04-15,1118.0,154.0
2020-04-16,826.0,171.0
2020-04-17,1076.0,252.0
2020-04-18,957.0,248.0
2020-04-19,1324.0,287.0
2020-04-20,1540.0,540.0
2020-04-21,1329.0,418.0
2020-04-22,1486.0,700.0
2020-04-23,1229.0,365.0
2020-04-24,1752.0,489.0
2020-04-25,1441.0,396.0
2020-04-26,1712.0,704.0
2020-04-27,1555.0,448.0
2020-04-28,1674.0,665.0
2020-04-29,1875.0,770.0
2020-04-30,1621.0,576.0
2020-05-01,1642.0,692.0
2020-05-02,2185.0,886.0
2020-05-03,2967.0,936.0
2020-05-04,2712.0,875.0
2020-05-05,3875.0,1399.0
2020-05-06,2680.0,1022.0
2020-05-07,3561.0,1084.0
2020-05-08,3390.0,1273.0
2020-05-09,3320.0,1307.0
2020-05-10,3277.0,1511.0
2020-05-11,4213.0,1559.0
2020-05-12,3604.0,1538.0
2020-05-13,3525.0,1931.0
2020-05-14,3722.0,1849.0
2020-05-15,3967.0,1685.0
2020-05-16,3740.0,2233.0
2020-05-17,4927.0,3956.0
2020-05-18,5122.0,2715.0
2020-05-19,4566.0,2350.0
2020-05-20,5329.0,3124.0
2020-05-21,5302.0,3002.0
2020-05-22,5871.0,3234.0
2020-05-23,6375.0,3250.0
2020-05-24,6328.0,2657.0
2020-05-25,6673.0,3280.0
2020-05-26,6207.0,2770.0
2020-05-27,5344.0,3935.0
2020-05-28,6247.0,3266.0
2020-05-29,7125.0,3414.0
2020-05-30,7594.0,11264.0
2020-05-31,7932.0,4614.0
2020-06-01,8253.0,4835.0
2020-06-02,7387.0,3708.0
2020-06-03,8200.0,4776.0
2020-06-04,8944.0,3804.0
2020-06-05,9724.0,5355.0
2020-06-06,9305.0,4611.0
2020-06-07,9558.0,5220.0
2020-06-08,9399.0,4802.0
2020-06-09,10373.0,5120.0
2020-06-10,9561.0,5991.0
2020-06-11,10290.0,5823.0
2020-06-12,11574.0,6166.0
2020-06-13,11789.0,7135.0
2020-06-14,12477.0,8049.0
2020-06-15,11966.0,7419.0
2020-06-16,9955.0,10215.0
2020-06-17,10385.0,6922.0
2020-06-18,12451.0,7390.0
2020-06-19,13362.0,10386.0
2020-06-20,14178.0,9120.0
2020-06-21,15551.0,13925.0
2020-06-22,16116.0,9440.0
2020-06-23,14750.0,10994.0
2020-06-24,15842.0,10495.0
2020-06-25,16570.0,13012.0
2020-06-26,17666.0,13940.0
2020-06-27,18652.0,10244.0
2020-06-28,20090.0,13832.0
2020-06-29,20013.0,12010.0
2020-06-30,18803.0,13099.0
2020-07-01,18742.0,13157.0
2020-07-02,19231.0,11881.0
2020-07-03,21704.0,20032.0
2020-07-04,23803.0,14335.0
2020-07-05,25220.0,14856.0
2020-07-06,23964.0,15350.0
2020-07-07,22131.0,15515.0
2020-07-08,22768.0,16883.0
2020-07-09,25512.0,19547.0
2020-07-10,26730.0,19138.0
2020-07-11,27859.0,19870.0
2020-07-12,29029.0,19235.0
2020-07-13,29367.0,18850.0
2020-07-14,28677.0,17989.0
2020-07-15,30084.0,20572.0
2020-07-16,32934.0,20783.0
2020-07-17,35710.0,22942.0
2020-07-18,35252.0,17994.0
2020-07-19,39065.0,23672.0
2020-07-20,40425.0,22664.0
2020-07-21,37148.0,24491.0
2020-07-22,37724.0,28472.0
2020-07-23,45720.0,29557.0
2020-07-24,49310.0,34602.0
2020-07-25,48916.0,32223.0
2020-07-26,48661.0,36145.0
2020-07-27,49931.0,31991.0
2020-07-28,47703.0,35175.0
2020-07-29,48513.0,35286.0
2020-07-30,52123.0,32553.0
2020-07-31,55078.0,37223.0
2020-08-01,57118.0,36569.0
2020-08-02,54735.0,51255.0
2020-08-03,52972.0,40574.0
2020-08-04,52050.0,44306.0
2020-08-05,52509.0,51706.0
2020-08-06,56282.0,46121.0
2020-08-07,62538.0,49769.0
2020-08-08,61537.0,48900.0
2020-08-09,64399.0,53879.0
2020-08-10,62064.0,54859.0
2020-08-11,53601.0,47746.0
2020-08-12,60963.0,56110.0
2020-08-13,66999.0,56383.0
2020-08-14,64553.0,55573.0
2020-08-15,65002.0,57381.0
2020-08-16,63490.0,53322.0
2020-08-17,57981.0,57584.0
2020-08-18,55079.0,57937.0
2020-08-19,64531.0,60091.0
2020-08-20,69652.0,58794.0
2020-08-21,68898.0,62282.0
2020-08-22,69878.0,63631.0
2020-08-23,69239.0,57989.0
2020-08-24,61408.0,57469.0
2020-08-25,60975.0,66550.0
2020-08-26,67151.0,63173.0
2020-08-27,75760.0,56013.0
2020-08-28,77266.0,60177.0
2020-08-29,76472.0,65050.0
2020-08-30,78761.0,64935.0
2020-08-31,78512.0,60868.0
2020-09-01,69921.0,65081.0
2020-09-02,78357.0,62026.0
2020-09-03,83883.0,68584.0
2020-09-04,83341.0,66659.0
2020-09-05,86432.0,70072.0
2020-09-06,90632.0,73642.0
2020-09-07,90802.0,69564.0
2020-09-08,75809.0,73521.0
2020-09-09,89706.0,74894.0
2020-09-10,95735.0,72939.0
2020-09-11,96551.0,70880.0
2020-09-12,97570.0,81533.0
2020-09-13,94372.0,78399.0
2020-09-14,92071.0,77512.0
2020-09-15,83809.0,79292.0
2020-09-16,90123.0,82961.0
2020-09-17,97894.0,82719.0
2020-09-18,96424.0,87472.0
2020-09-19,93337.0,95880.0
2020-09-20,92605.0,94612.0
2020-09-21,86961.0,93356.0
2020-09-22,75083.0,101468.0
2020-09-23,83347.0,89746.0
2020-09-24,86508.0,87374.0
2020-09-25,86052.0,81177.0
2020-09-26,85362.0,93420.0
2020-09-27,88600.0,92043.0
2020-09-28,82170.0,74893.0
2020-09-29,70589.0,84877.0
2020-09-30,80472.0,86428.0
2020-10-01,86821.0,85376.0
2020-10-02,81484.0,78877.0
2020-10-03,79476.0,75628.0
2020-10-04,75829.0,82260.0
2020-10-05,74442.0,76737.0
2020-10-06,61267.0,75787.0
2020-10-07,72049.0,82203.0
2020-10-08,78524.0,83011.0
2020-10-09,70496.0,78365.0
2020-10-10,73272.0,82753.0
2020-10-11,74383.0,89154.0
2020-10-12,66732.0,71559.0
2020-10-13,55342.0,77760.0
2020-10-14,63509.0,74632.0
2020-10-15,67708.0,81514.0
2020-10-16,63371.0,70338.0
2020-10-17,62212.0,70816.0
2020-10-18,61871.0,72614.0
2020-10-19,55722.0,66399.0
2020-10-20,46790.0,69720.0
2020-10-21,54044.0,61775.0
2020-10-22,55839.0,79415.0
2020-10-23,54366.0,73979.0
2020-10-24,53370.0,67549.0
2020-10-25,50129.0,62077.0
2020-10-26,45148.0,59105.0
2020-10-27,36470.0,63842.0
2020-10-28,43893.0,58439.0
2020-10-29,49881.0,56480.0
2020-10-30,48648.0,57386.0
2020-10-31,48268.0,59454.0
2020-11-01,46963.0,58684.0
2020-11-02,45231.0,53285.0
2020-11-03,38310.0,58323.0
2020-11-04,46253.0,53357.0
2020-11-05,50210.0,55331.0
2020-11-06,47638.0,54157.0
2020-11-07,50356.0,53920.0
2020-11-08,45674.0,49082.0
2020-11-09,45903.0,48405.0
2020-11-10,38073.0,46084.0
2020-11-11,44281.0,50326.0
2020-11-12,47905.0,52718.0
2020-11-13,44879.0,49079.0
2020-11-14,44684.0,47992.0
2020-11-15,41100.0,42156.0
2020-11-16,30548.0,43851.0
2020-11-17,29163.0,40791.0
2020-11-18,38617.0,44739.0
2020-11-19,45576.0,48493.0
2020-11-20,45882.0,44807.0
2020-11-21,46232.0,49715.0
2020-11-22,45209.0,43493.0
2020-11-23,44059.0,41024.0
2020-11-24,37975.0,42314.0
2020-11-25,44376.0,37816.0
2020-11-26,44489.0,36367.0
2020-11-27,43082.0,39379.0
2020-11-28,41322.0,41452.0
2020-11-29,41810.0,42298.0
2020-11-30,38772.0,45333.0
2020-12-01,31118.0,41985.0
2020-12-02,36604.0,43062.0
2020-12-03,35551.0,40726.0
2020-12-04,36595.0,42916.0
2020-12-05,36652.0,42533.0
2020-12-06,36011.0,41970.0
2020-12-07,32981.0,39109.0
2020-12-08,26567.0,39045.0
2020-12-09,32080.0,36635.0
2020-12-10,31521.0,37725.0
2020-12-11,29398.0,37528.0
2020-12-12,30006.0,33494.0
2020-12-13,30254.0,33136.0
2020-12-14,27071.0,30695.0
2020-12-15,22004.0,34477.0
2020-12-16,26443.0,33813.0
2020-12-17,24010.0,33291.0
2020-12-18,22890.0,31087.0
2020-12-19,25152.0,29885.0
2020-12-20,26624.0,29690.0
2020-12-21,26921.0,25709.0
2020-12-22,10186.0,30376.0
2020-12-23,30736.0,26895.0
2020-12-24,24712.0,29791.0
2020-12-25,23067.0,24661.0
2020-12-26,22273.0,22274.0
2020-12-27,18732.0,21430.0
2020-12-28,20021.0,21131.0
2020-12-29,16432.0,24900.0
2020-12-30,20549.0,26572.0
2020-12-31,21822.0,26139.0
2021-01-01,20035.0,23181.0
2021-01-02,19079.0,22926.0
2021-01-03,18177.0,20923.0
2021-01-04,16504.0,19557.0
2021-01-05,16375.0,29091.0
2021-01-06,18088.0,21314.0
2021-01-07,20346.0,19587.0
2021-01-08,18139.0,20539.0
2021-01-09,18222.0,19253.0
2021-01-10,18645.0,19299.0
2021-01-11,16311.0,16959.0
2021-01-12,12584.0,18385.0
2021-01-13,15968.0,17817.0
2021-01-14,16946.0,17652.0
2021-01-15,15590.0,15975.0
2021-01-16,15158.0,16977.0
2021-01-17,15144.0,17170.0
2021-01-18,13788.0,14457.0
2021-01-19,10064.0,17411.0
2021-01-20,13823.0,16988.0
2021-01-21,15223.0,19965.0
2021-01-22,14545.0,18002.0
2021-01-23,14256.0,17130.0
2021-01-24,14849.0,15948.0
2021-01-25,7648.0,13298.0
2021-01-26,14657.0,15901.0
2021-01-27,12689.0,13320.0
2021-01-28,11666.0,14301.0
2021-01-29,18855.0,20746.0
2021-01-30,13083.0,14808.0
2021-01-31,13052.0,13965.0
2021-02-01,10448.0,11858.0
2021-02-02,9614.0,13423.0
2021-02-03,11039.0,14225.0
2021-02-04,12899.0,17824.0
2021-02-05,12408.0,15853.0
2021-02-06,11713.0,14488.0
2021-02-07,12059.0,11805.0
2021-02-08,11831.0,11904.0
2021-02-09,9110.0,14016.0
2021-02-10,11067.0,13087.0
2021-02-11,9096.0,11764.0
2021-02-12,13136.0,15858.0
2021-02-13,12143.0,11395.0
2021-02-14,12194.0,11106.0
2021-02-15,11649.0,9489.0
2021-02-16,9121.0,11805.0
2021-02-17,11610.0,11833.0
2021-02-18,7159.0,11987.0
2021-02-19,18915.0,10896.0
2021-02-20,13993.0,10307.0
2021-02-21,14264.0,11667.0
2021-02-22,14199.0,9695.0
2021-02-23,10584.0,13255.0
2021-02-24,26214.0,14037.0
2021-02-25,4266.0,11799.0
2021-02-26,16577.0,12179.0
2021-02-27,16488.0,12771.0
2021-02-28,16752.0,11718.0
2021-03-01,14418.0,11288.0
2021-03-02,13378.0,12464.0
2021-03-03,4078.0,13123.0
2021-03-04,28318.0,14031.0
2021-03-05,16838.0,13819.0
2021-03-06,18327.0,14234.0
2021-03-07,18711.0,14392.0
2021-03-08,18599.0,14278.0
2021-03-09,1474.0,16596.0
2021-03-10,31835.0,20652.0
2021-03-11,0.0,12917.0
2021-03-12,22854.0,18100.0
2021-03-13,48167.0,35114.0
2021-03-14,25320.0,16637.0
2021-03-15,26291.0,17455.0
2021-03-16,24492.0,20191.0
2021-03-17,28903.0,17741.0
2021-03-18,35871.0,17741.0
2021-03-19,39726.0,20654.0
2021-03-20,40953.0,23653.0
2021-03-21,43846.0,22956.0
2021-03-22,46951.0,21180.0
2021-03-23,40715.0,29785.0
2021-03-24,47262.0,23907.0
2021-03-25,53476.0,26490.0
2021-03-26,59118.0,32987.0
2021-03-27,62258.0,30386.0
2021-03-28,62714.0,28739.0
2021-03-29,68020.0,32231.0
2021-03-30,56211.0,37028.0
2021-03-31,53480.0,41280.0
2021-04-01,76806.0,40382.0
2021-04-02,76990.0,50356.0
2021-04-03,89129.0,44202.0
2021-04-04,93249.0,60048.0
2021-04-05,103558.0,52847.0
2021-04-06,96982.0,50143.0
2021-04-07,115736.0,59856.0
2021-04-08,126789.0,59258.0
2021-04-09,131968.0,61899.0
2021-04-10,145384.0,77567.0
2021-04-11,152879.0,90584.0
2021-04-12,168912.0,75086.0
2021-04-13,161736.0,97168.0
2021-04-14,184372.0,82339.0
2021-04-15,200739.0,93528.0
2021-04-16,217353.0,118302.0
2021-04-17,234692.0,123354.0
2021-04-18,261500.0,138423.0
2021-04-19,273810.0,144178.0
2021-04-20,259170.0,154761.0
2021-04-21,295041.0,167457.0
2021-04-22,314835.0,178841.0
2021-04-23,332730.0,193279.0
2021-04-24,346786.0,219838.0
2021-04-25,349691.0,217113.0
2021-04-26,352991.0,219272.0
2021-04-27,323144.0,251827.0
2021-04-28,360960.0,261162.0
2021-04-29,379257.0,269507.0
2021-04-30,386452.0,297540.0
2021-05-01,401993.0,299988.0
2021-05-02,392488.0,307865.0
2021-05-03,368147.0,300732.0
2021-05-04,357229.0,320289.0
2021-05-05,382315.0,338439.0
2021-05-06,412262.0,329113.0
2021-05-07,414188.0,331507.0
2021-05-08,401078.0,318609.0
2021-05-09,403738.0,386444.0
2021-05-10,366161.0,353818.0
2021-05-11,329942.0,356082.0
2021-05-12,348421.0,355338.0
2021-05-13,362727.0,352181.0
2021-05-14,343144.0,344776.0
2021-05-15,326098.0,353299.0
2021-05-16,311170.0,362437.0
2021-05-17,281386.0,378741.0
2021-05-18,263533.0,422436.0
2021-05-19,267334.0,389851.0
2021-05-20,276110.0,369077.0
2021-05-21,259551.0,357295.0
2021-05-22,257299.0,357630.0
2021-05-23,240842.0,355102.0
2021-05-24,222315.0,302544.0
2021-05-25,196427.0,326850.0
2021-05-26,208921.0,295955.0
2021-05-27,211298.0,283135.0
2021-05-28,186364.0,259459.0
2021-05-29,173790.0,284601.0
2021-05-30,165553.0,276309.0
2021-05-31,152734.0,238022.0
2021-06-01,127510.0,255287.0
2021-06-02,132788.0,231456.0
2021-06-03,134154.0,211499.0
2021-06-04,132364.0,207071.0
2021-06-05,120529.0,197894.0
2021-06-06,114460.0,189232.0
2021-06-07,100636.0,174399.0
2021-06-08,86498.0,182282.0
2021-06-09,92596.0,162664.0
2021-06-10,94052.0,151367.0
2021-06-11,91702.0,134580.0
2021-06-12,84332.0,121311.0
2021-06-13,80834.0,132062.0
2021-06-14,70421.0,119501.0
2021-06-15,60471.0,117525.0
2021-06-16,62224.0,107628.0
2021-06-17,67208.0,103570.0
2021-06-18,62480.0,88977.0
2021-06-19,60753.0,97743.0
2021-06-20,58419.0,87619.0
2021-06-21,53256.0,78190.0
2021-06-22,42640.0,81839.0
2021-06-23,50848.0,68817.0
2021-06-24,54069.0,68885.0
2021-06-25,51667.0,64527.0
2021-06-26,48698.0,64818.0
2021-06-27,50040.0,57944.0
2021-06-28,46148.0,58578.0
2021-06-29,37566.0,56994.0
2021-06-30,45951.0,60729.0
2021-07-01,48786.0,61588.0
2021-07-02,46617.0,59384.0
2021-07-03,44111.0,57477.0
2021-07-04,43071.0,52299.0
2021-07-05,39796.0,42352.0
2021-07-06,34703.0,51864.0
2021-07-07,43733.0,47240.0
2021-07-08,45892.0,44291.0
2021-07-09,43393.0,44459.0
2021-07-10,42766.0,45254.0
2021-07-11,41506.0,41526.0
2021-07-12,37154.0,39649.0
2021-07-13,32906.0,49007.0
2021-07-14,38792.0,41000.0
2021-07-15,41806.0,39130.0
2021-07-16,38949.0,40026.0
2021-07-17,38079.0,43916.0
2021-07-18,41157.0,42004.0
2021-07-19,38164.0,38660.0
2021-07-20,30093.0,45254.0
2021-07-21,42015.0,36977.0
2021-07-22,41383.0,38652.0
2021-07-23,35342.0,38740.0
2021-07-24,39097.0,35087.0
2021-07-25,39742.0,39972.0
2021-07-26,39361.0,35968.0
2021-07-27,29689.0,42363.0
2021-07-28,43654.0,41678.0
2021-07-29,43509.0,38465.0
2021-07-30,44230.0,42360.0
2021-07-31,41649.0,37291.0
2021-08-01,41831.0,39258.0
2021-08-02,40134.0,36946.0
2021-08-03,30549.0,38887.0
2021-08-04,42625.0,36668.0
2021-08-05,42982.0,41726.0
2021-08-06,44643.0,41096.0
2021-08-07,38628.0,40017.0
2021-08-08,39070.0,43910.0
2021-08-09,35499.0,39686.0
================================================
FILE: examples/data/data.csv
================================================
time,Abby Johnson,Abdul Aziz Al Ghurair,Abigail Johnson,Akira Mori,Alain & Gerard Wertheimer,Alain & Gerard Wertheimer,Alain Wertheimer,Alberto Bailleres,Alberto Bailleres Gonzalez,Alejandro Santo Domingo Davila,Alexander Abramov,Alexei Kuzmichev,Alexey Mordashov,Alice Walton,Aliko Dangote,Alisher Usmanov,Alwaleed Al Saud,Amancio Ortega,Amos Hostetter,Ananda Krishnan,Andrey Melnichenko,Anil Ambani,Ann Walton Kroenke,Anne Cox Chambers,Antonia Johnson,Antonio Ermirio de Moraes,August von Finck,Azim Premji,Beate Heister & Karl Albrecht Jr.,Bernard Arnault,Bernard Ecclestone,Bernard Marcus,Berthold & Theo Jr. Albrecht,Bill Gates,Birgit Rausing,Budi Hartono,Carl Cook,Carl Icahn,Carlos Alberto Sicupira,Carlos Slim,Carlos Slim Helu,Charlene de Carvalho-Heineken,Charles Bronfman,Charles Butt,Charles Ergen,Charles Koch,Charles Schwab,Charoen Sirivadhanabhakdi,Cheng Yu-tung,Christoph Henkel,Christy Walton,Colin Huang,Craig McCaw,Curt Engelhorn,Dan Duncan,David & Simon Reuben,David & Simon Reuben,David Geffen,David Koch,David Sainsbury,David Tepper,David Thomson,Dhanin Chearavanont,Dieter Schwarz,Dietrich Mateschitz,Dilip Shanghvi,Dirce Navarro De Camargo,Dmitry Rybolovlev,Donald Bren,Donald Newhouse,Edgar Bronfman,Edward Johnson,Eike Batista,Eitaro Itoyama,Elaine Marshall,Eli Broad,Eliodoro,Eliodoro Matte,Elon Musk,Elon R Musk,Emmanuel Besnier,Enrique Banuelos,Eric Schmidt,Erivan Haub,Ernesto Bertarelli,Ferit Sahenk,Forrest Mars,Francois Pinault,Francoise Bettencourt Meyers,Galen Weston,Gautam Adani,Gennady Timchenko,Georg Schaeffler,George Kaiser,George Lucas,George Soros,Georgina Rinehart,Gerald Cavendish Grosvenor,Gerard Wertheimer,German Khan,German Larrea Mota Velasco,Gina Rinehart,Giorgio Armani,Giovanni Ferrero,Gordon Moore,Gunter Herz,Gustavo Cisneros,Hans Rausing,Hansjorg Wyss,Harold Hamm,Hasso Plattner,He Xiangjian,Heinz Hermann Thiele,Henry Cheng,Henry Hillman,Henry Ross Perot Sr,Henry Sy,Hinduja family,Horst Paulmann,Hubert Burda,Hui Ka Yan,Igor Zyuzin,Ingvar Kamprad,Iris Fontbona,Iskander Makhmudov,Jack Ma,Jack Taylor,Jacqueline Mars,James,James Goodnight,James Ratcliffe,James Simons,Jean-Claude Decaux,Jeff Bezos,Jeffrey Skoll,Jeronimo Arango,Jim Pattison,Jim Ratcliffe,Jim Simons,Jim Walton,Johanna Quandt,John Fredriksen,John Mars,John Menard Jr,John Paulson,Jon Huntsman,Jorge Paulo Lemann,Joseph Lau,Joseph Safra,Julia Flesher Koch,Ka-shing Li,Karl Albrecht,Karl-Heinz Kipp,Kazuo Okada,Kirk Kerkorian,Kjeld Kirk Kristiansen,Klaus-Michael Kuehne,Klaus-Michael Kuhne,Kumar Birla,Kun-Hee Lee,Kunio Busujima,Kushal Pal Singh,Kwok Thomas & Raymond,Kwok family,Lakshmi Mittal,Larry Ellison,Larry Page,Laurene Powell Jobs,Lawrence Ellison,Lee Bass,Lee Kun Hee,Lee Kun-Hee,Lee Man Tat,Lee Shau Kee,Lei Jun,Len Blavatnik,Leonard Blavatnik,Leonard Lauder,Leonardo Del Vecchio,Leonardo del Vecchio,Leonid Mikhelson,Lester Crown,Li Hejun,Li Ka-Shing,Li Ka-shing,Li Shufu,Liliane Bettencourt,Lorenzo Mendoza,Luciano Benetton,Lui Che Woo,Luis Carlos Sarmiento,Lukas Walton,Ma Huateng,MacKenzie Bezos,Marcel Herrmann Telles,Maria Franca Fissolo,Maria-Elisabeth & Georg Schaeffler,Maria-Elisabeth & Georg Schaeffler,Mark Zuckerberg,Martin Ebner,Masatoshi Ito,Masayoshi Son,Mehmet Emin Karamehmet,Michael Bloomberg,Michael Dell,Michael Hartono,Michael Kadoorie,Michael Otto,Michele Ferrero,Micky Arison,Mikhail Fridman,Mikhail Prokhorov,Miuccia Prada,Mohamed Bin Issa Al Jaber,Mohammed Al Amoudi,Mukesh Ambani,Naguib Sawiris,Nassef Sawiris,Nasser Al-Kharafi,Nicky Oppenheimer,Nikolai Tsvetkov,Nobutada Saji,Oleg Deripaska,Onsi Sawiris,Pallonji Mistry,Patrick Drahi,Patrick Soon-Shiong,Paul Allen,Petr Kellner,Phil Knight,Philip & Cristina Green,Philip Anschutz,Pierre Omidyar,Pony Ma,Prince Alwaleed Bin Talal Alsaud,R. Budi Hartono,Rahmi Koc,Ramesh Chandra,Ray Dalio,Reinhold Wurth,Ricardo Salinas,Ricardo Salinas Pliego,Richard Kinder,Riley Bechtel,Rinat Akhmetov,Rob Walton,Robert E \Ted\ Turner,Robert Kuok,Robin Li,Rolf Gerling,Roman Abramovich,Ronald Perelman,Rupert Murdoch,S. Robson Walton,Sammy Ofer,Samuel Newhouse,Savitri Jindal,Serge Dassault,Sergey Brin,Shari Arison,Shashi & Ravi Ruia,Shashi & Ravi Ruia,Shau Kee Lee,Sheldon Adelson,Shiv Nadar,Sid Bass,Silvio Berlusconi,Spiro Latsis,Stefan Persson,Stefan Quandt,Stefano Pessina,Stephan Schmidheiny,Stephen Bechtel,Stephen Ross,Steve Ballmer,Steve Cohen,Steve Schwarzman,Sulaiman Al Rajhi,Suleiman Kerimov,Sumner Redstone,Sun Piaoyang,Sunil Mittal,Susanne Klatten,Tadashi Yanai,Takemitsu Takizaki,Theo Albrecht,"Theo Albrecht, Jr.",Thomas & Raymond Kwok,Thomas Peterffy,Thomas Pritzker,Ty Warner,Uday Kotak,Vagit Alekperov,Viktor Rashnikov,Viktor Vekselberg,Vladimir Lisin,Vladimir Potanin,Vladimir Yevtushenkov,Walter Haefner,Wang Jianlin,Wang Wei,Wang Wenyin,Warren Buffett,William Cook,William Ding,William Wrigley,Yang Huiyan,Yoshitaka Fukuda,Yu-tung Cheng,Zhang Zhidong,Zong Qinghou
2001,,,9.1,,,5.0,,,,,,,,18.5,,,,6.6,3.3,,,,3.4,11.7,,3.5,5.0,6.9,,10.7,,,,58.7,9.0,,,3.7,,,10.8,,3.4,,8.8,,6.3,,,5.6,,,3.5,5.4,,,,3.4,,4.7,,,,,,,,,4.0,5.0,3.3,4.6,,3.3,,5.8,,,,,,,,4.0,10.5,,9.0,6.3,,4.0,,,,,,6.0,,6.5,,,,,,,5.4,4.8,5.3,7.7,,,5.4,,,,,3.8,,,,,,,13.0,,,,,9.0,4.4,5.7,,,,,,,,,,18.8,17.8,,9.0,,,3.8,,,,,12.6,,,3.5,6.4,,,,,,,,,11.5,,,,,26.0,4.3,,,,,,,,3.8,6.6,,,,,,,,15.6,4.5,5.5,,,,,,,,,,,3.3,4.5,5.6,3.7,4.5,10.5,,3.4,5.0,,4.1,,,,,,,,,6.0,4.5,,,,,,,,30.4,,4.3,,15.3,4.5,,20.0,,,,,3.5,,,,,,,8.8,3.7,,4.7,,,7.8,18.6,,5.0,,4.9,,3.7,,,5.9,,,3.8,10.3,4.6,5.3,,,3.5,,,16.6,,,,,12.6,,,,4.8,,,,,,5.5,4.0,,,,,,,,5.3,,,,32.3,,,,12.608092,,,,
2002,,,8.6,3.4,,4.3,,,,,,,,20.5,,,,9.1,,,,,,10.1,,3.6,4.8,6.4,,7.0,3.0,3.0,,52.8,10.7,,,5.0,,,11.5,4.3,,,6.2,3.1,4.1,,,,,,,5.6,,,,4.0,3.1,4.3,,,,,,,,,4.0,5.0,3.0,4.3,,3.1,,5.2,,,,,,,,3.8,8.4,,9.0,3.1,,4.2,,,,,3.0,6.9,,6.7,,,,,,,6.1,,5.0,7.7,,,4.4,,,,3.0,3.9,,,,,,,13.4,,,,,9.0,4.1,4.8,,,,,,3.7,,,,20.8,18.4,,9.0,,,3.8,,,,,10.0,,3.4,,5.8,,,,,,,,,9.2,,,,,23.5,,,,,,,,,,6.6,,,3.4,,,,,14.9,4.4,4.9,,,,,,,,,,,,,,4.0,4.4,11.1,,3.1,6.5,,3.6,,,,,,,,,5.7,3.3,,,,,,,,25.2,,5.7,,5.1,4.6,,20.0,,,,,3.1,,,,3.0,,,3.8,4.1,,4.3,3.0,,5.7,20.5,,5.0,,4.9,,3.3,,,5.2,,,,7.2,3.4,5.6,,,3.1,3.0,,14.8,,,,,8.1,,,,,,,,,,5.0,4.0,,,,,,,,5.0,,,,35.0,,,3.4,,,,,
2003,,,8.2,4.1,,4.5,,,,,,,,16.5,,,,10.3,,,,,,10.3,3.6,,5.6,5.9,,6.7,3.2,,,40.7,12.9,,,5.8,,,7.4,3.7,,,5.9,4.0,,,,,,,,5.7,,,,3.8,4.0,3.0,,,,,,,,,4.0,7.7,,4.1,,4.1,,3.9,,,,,,,,3.8,4.7,,10.0,2.8,,6.2,,,,,3.0,7.0,,7.5,,,,,,,,,4.0,7.7,,,2.9,,,,2.9,3.7,,,,2.9,,,13.0,,,,3.0,10.0,3.5,3.1,,,,,,3.4,,,,16.5,3.4,,10.0,,,,,,,,7.8,,4.1,,3.4,,,,,2.8,,,,6.6,,,,,16.6,,,,,,,,,,5.6,,,2.8,,,,,14.5,4.3,4.6,,,,,,,,,3.8,,,,,,4.8,9.8,,3.3,5.5,3.5,3.2,4.3,,,,,2.8,,,5.1,3.2,,,,,,,,20.1,,4.2,,4.9,5.0,,17.7,,,,,,,,,3.2,,,,3.4,,3.0,5.7,,5.5,16.5,,7.7,,3.2,,,,,3.7,,,,5.9,3.3,6.7,4.3,,,3.2,,11.1,,,,,8.0,,,5.3,,,,,,,7.6,6.0,,,,,,,,,,,,30.5,3.2,,3.5,12.608092,,,,
2004,,,9.8,,,5.6,,,,,,,,20.0,,,,9.2,,,,,,11.2,5.2,,6.8,6.7,,12.2,,,,46.6,9.3,,,7.6,,,13.9,4.6,,,9.1,4.0,,,,,,,,5.9,,,,4.0,4.0,4.0,,,,,,,,,4.0,7.7,,4.9,,4.9,,5.8,,,,,,,,4.5,7.4,,10.4,4.7,,7.7,,,,,,7.0,,8.7,,,,,,,5.5,,4.6,8.0,,,5.4,,,,,3.8,,,,,,,18.5,,,,,10.4,3.8,,,,,5.1,4.4,4.0,4.6,,,20.0,5.3,,10.4,,,,,,,,12.4,23.0,4.6,,6.0,,,,,,4.2,,,11.4,6.2,,,,18.7,,,,,,,,,,6.9,,,,,,,,18.8,4.1,4.5,,,,,,,,,6.1,,,,,,4.9,13.0,,3.9,8.0,,5.9,5.6,4.8,,,,6.0,,,8.4,4.4,,,,,,,,21.0,,7.1,5.0,5.2,8.5,,21.5,,,,,4.4,,,,,,,,4.2,,,10.6,3.8,7.8,20.0,,7.7,,6.4,,4.6,,,6.3,,,,10.0,4.4,8.6,6.5,,,,,12.4,,,,,8.9,,,8.1,,,,,,,7.6,6.0,,,,,3.8,4.9,,4.5,,,,42.9,,,,,4.4,,,
2005,,,12.0,,,4.8,,,,,,,4.8,18.0,,,,12.6,,,,,,11.7,5.4,,6.3,9.3,,17.0,,,,46.5,7.6,,,7.8,,,23.8,4.9,,,7.2,,,,,,,,,6.0,,,,4.4,,,,,,,,,,,,7.0,,6.0,,4.9,,6.1,,,,,,,,,5.8,4.7,10.4,5.9,,9.9,,,,,,7.2,,5.6,,,,,4.5,,,,5.0,8.2,,,5.0,,,,,,,,,,,,23.0,,,,,10.4,4.4,,,,5.4,,5.0,,4.8,,,18.2,5.4,,10.4,,,,,,,,13.0,18.5,4.8,,8.9,,,,,,4.7,,,10.9,25.0,,7.2,,18.4,,,,,,,,,,8.5,,,,,,,,17.2,,9.9,,,,,,,,,6.3,,,,,,5.0,16.0,,4.7,8.3,8.5,6.5,7.0,,,,,7.0,,,9.0,6.0,,,5.5,5.2,,,,21.0,,8.2,6.3,5.8,9.9,,23.7,,4.9,,,7.2,,,,,,,,5.0,,,13.3,4.9,7.8,18.3,,7.0,,7.8,7.2,5.5,,,9.3,15.6,,,12.0,7.5,11.2,6.7,,,,,12.1,,,5.6,,8.8,,,8.2,,,,,,,,5.0,,,,5.0,7.0,4.4,,,,,,44.0,,,,,5.6,,,
2006,,6.9,12.5,,,7.5,,,,,,,7.6,15.7,,,,14.8,,,,5.7,,12.4,,,7.0,13.3,,21.5,,,,50.0,8.6,,,8.7,,,30.0,5.0,,,6.7,12.0,,,,,15.9,,,6.1,,,,,12.0,,,,,,,,,,5.7,7.5,,6.7,,,,5.9,,,,,,,,,7.1,,10.0,7.0,,8.4,,,,,,7.2,,6.0,,6.1,,,,,,,5.0,8.5,,,6.4,,,,,,,,,,,,28.0,,,,6.0,10.0,5.5,,,,,,,,,,,15.9,6.1,,10.0,,,,,,,,18.8,17.0,,,8.7,,,,,6.6,5.2,,,11.6,23.5,,12.8,,16.0,,,,,,,,5.0,,10.0,,,,,,,,16.0,,,,,,,,,,,6.8,,,,,,5.1,17.1,,,10.4,10.0,6.1,9.7,6.4,,,6.9,8.5,,,12.4,,5.2,,7.8,,,,,22.0,,7.3,7.0,6.4,10.1,,20.0,,,,,7.5,,,,,,,,,,,18.2,6.1,6.5,15.8,,7.5,,8.5,12.9,5.2,,,11.0,16.1,,,11.0,9.1,12.3,6.6,,,,,13.6,,,11.0,7.1,7.7,,,8.1,,,,,,,,,,11.0,,10.0,10.7,6.4,6.3,,,,,42.0,,,,,,5.1,,
2007,,8.0,13.0,,,10.0,,,,,,,11.2,16.6,,,,24.0,,,,18.2,,12.6,,,8.4,17.1,,26.0,,,,56.0,11.0,,,13.0,,,49.0,7.2,,,10.0,12.0,,,,,16.7,,,,,,,,12.0,,,22.0,,,,,,,8.5,7.3,,7.5,,,,,,,,,,7.7,,,8.8,,10.5,14.5,,7.9,,,,8.5,,8.5,,11.0,,8.0,,,,,,,,9.0,,,,,,,,,,,,,,,33.0,,8.0,,13.9,10.5,,,,,,,,,,,,16.8,,7.0,10.5,,,,,,,,23.0,20.0,,,15.0,,,,8.0,,,10.0,,15.0,32.0,,16.6,,21.5,,,,,,,,7.2,,11.5,,,,,,,,20.7,,,,,,,,,,,8.7,,,,,,,15.8,,,13.3,10.0,,12.6,13.5,,,8.0,20.1,10.0,,11.5,,8.4,,13.3,,,,,18.0,,9.5,7.0,7.9,8.8,,20.3,,,,,9.0,,,,,,,,7.0,,,18.7,7.0,9.0,16.7,,7.3,,10.0,16.6,,,8.0,17.0,26.5,,,11.8,11.0,18.4,7.6,,,,,15.0,,,7.4,14.4,8.0,,9.5,9.6,,,,,,,,,,12.4,7.0,10.4,14.3,13.5,9.1,,,,,52.0,,,,,,,,
2008,,8.9,15.0,,,12.9,,9.8,,,11.5,10.8,21.2,19.0,,9.3,,20.2,,,,42.0,,12.6,,10.0,9.2,12.7,,25.5,,,,58.0,14.0,,,14.0,,,60.0,,,,9.5,17.0,,,,,19.2,,,,,,,,17.0,,,18.9,,,,,,12.8,13.0,8.5,,10.0,,,,,,,,,,,,,10.3,,14.0,16.9,,,9.3,,,11.0,,9.0,,14.0,,13.9,,,,,,,,10.0,,,,,,,,,,,,,,10.0,31.0,10.0,11.9,,14.0,14.0,,8.7,,,,,,,,,,19.2,,,14.0,,,,,,8.8,,26.5,27.0,,,16.0,,,,10.2,,,30.0,,19.9,45.0,25.0,18.6,,,,,,,,,,,,10.0,,,,,,,,22.9,,,,,,,,,,,,,,,,,11.5,16.4,,,18.2,11.0,,20.8,19.5,,,9.0,43.0,12.7,11.0,14.0,,,,28.0,9.1,,,,16.0,9.3,10.4,,,,,21.0,,,9.6,,,,,,,,,,9.0,,,23.5,9.5,,19.2,,,,9.9,18.7,,,15.0,19.0,26.0,,,9.4,11.0,17.7,,,,,,15.0,,,,17.5,,,11.8,13.2,,,,,,,,,,13.0,10.4,11.2,20.3,19.3,10.0,,,,,62.0,,,,,,,,
2009,,7.8,10.0,,,8.0,,5.7,,,,,,17.6,,,,18.3,,7.0,,10.1,,9.0,4.8,,6.7,5.7,,16.5,,,,40.0,9.9,,,9.0,,,35.0,,,,,14.0,,,,,17.6,,,6.3,,,5.0,,14.0,,,13.0,,,,,,,12.0,,,7.0,7.5,,,5.2,,5.9,,,,,,5.4,8.2,,9.0,7.6,,5.0,,,,9.0,,11.0,,11.0,,,,,,,,,,10.0,5.7,,,,,,,,,,,,,,22.0,6.0,,,9.5,9.0,,6.1,,8.0,,6.8,,,,,,17.8,,,9.0,,6.0,,5.3,,7.0,,16.2,21.5,5.2,,5.0,,,,,,5.2,5.0,,10.5,19.3,22.5,12.0,,,,,,,,,,,,6.3,,,,,,,,13.4,,,,,,,,,,,,,,,,,16.0,12.3,,,13.2,9.5,,6.3,9.5,,7.0,9.0,19.5,,,8.1,5.0,,,,,,,5.5,10.5,6.0,8.2,4.8,5.0,,,13.3,,,,,5.2,,,,,,,,7.0,,,8.5,10.0,,17.6,,,,5.4,12.0,,,5.6,9.0,,,,6.5,,14.5,,,,,,11.0,5.5,,6.2,,,,7.7,10.0,6.0,,,,,,,,,7.8,,,5.2,,,,,,,37.0,,,,,,,,
2010,,,11.5,,7.5,,,,8.3,,,,9.9,20.6,,,,25.0,,7.6,,13.7,,10.0,,,7.3,17.0,,27.5,,,,53.0,13.0,,,10.5,,,53.5,,,,,17.5,,,,,22.5,,,,9.0,7.5,,,17.5,,,19.0,,,,,,8.6,12.0,,,8.0,27.0,,,,8.1,,,,,,,,10.0,,11.0,8.7,,,,,,10.0,,14.0,,12.0,,8.2,9.7,,,,,,,10.0,,,,,,,,,,,,,,,23.0,11.0,8.5,,,11.0,,,,8.5,,12.3,,,,,,20.7,,7.7,11.0,,12.0,,11.5,,10.0,,,23.5,,,,,,,7.9,,,9.0,17.0,,28.7,28.0,17.5,,,,,7.2,,18.5,,7.5,,,10.5,,,,,,21.0,,20.0,,,,,,,,,,,,,,,,,18.0,13.5,,,18.7,17.0,,12.7,13.4,,7.5,10.0,29.0,,,8.7,,,7.5,10.7,,,,,13.5,7.6,10.2,,,,,19.4,,,,,,,10.1,,,,,,14.5,,,11.2,11.0,,19.8,,,12.2,7.6,17.5,,13.0,,,9.3,,,9.0,,22.4,,,,,,14.5,,,,,,,7.8,11.1,7.6,,16.7,,,,,,,10.6,9.8,,15.8,10.3,7.5,,,,,47.0,,,,,,,,
2011,,,11.3,,,,,,11.9,,,,18.5,21.2,13.8,17.7,,31.0,,9.5,,,,13.4,,,,16.8,,41.0,,,14.4,56.0,14.0,,,12.5,,,74.0,,,,,22.0,,,,,26.5,,,,,,,,22.0,,,23.0,,,,,,9.5,12.0,,,,30.0,,,,10.4,,,,,,,,10.0,,10.0,11.5,,,10.0,,,9.8,,14.5,9.0,13.0,,9.6,16.0,,,,,,,10.0,,,,,,,,,,,10.5,,,,,19.2,9.9,,,10.0,,,,10.6,,18.1,,,,,,21.3,9.8,10.7,10.0,,16.0,,13.3,,11.4,,,25.5,,,,,,10.0,9.2,,,,20.0,,31.1,39.5,19.8,,,,,,,19.0,,10.1,,,11.0,,9.1,,,,26.0,,23.5,,,,10.5,,,,,,9.8,,13.5,,,,,18.1,14.6,,,16.6,18.0,,15.1,18.0,,,12.3,27.0,,,10.4,,,,16.8,,,,,13.0,9.2,12.7,,,,,19.6,,,,,,,,,,16.0,,,12.5,9.4,,13.4,12.0,,21.0,10.3,,13.2,9.3,19.8,,15.8,,,23.3,,,,,24.5,10.7,,,,,14.5,,,,,,,,14.6,,,,,,,,,,13.9,11.2,13.0,24.0,17.8,,,,,,50.0,,,,,,,,
2012,,,10.3,,,,,,16.5,9.5,,,15.3,23.3,11.2,18.1,,37.5,,9.9,10.8,,,12.5,,12.2,,15.9,,41.0,,,,61.0,14.0,,,14.0,,,69.0,,,,,25.0,,,16.0,,25.3,,,,,,,,25.0,,,17.5,,,,,,,12.0,,,,30.0,,,,,10.2,,,,,,,10.6,,13.8,13.0,,,,9.1,,10.0,,20.0,18.0,11.0,,,14.2,,,,,,,10.0,,11.0,,,,,,,,,9.3,,,,,17.8,,,10.4,13.8,,,,10.7,,18.4,,,,,,23.7,10.0,11.3,13.8,,12.5,,12.0,,13.8,,,25.4,,,,,9.8,,,,,,,,20.7,36.0,18.7,9.0,,,,,,18.0,,11.9,,,11.5,,11.9,,,,25.5,,24.0,,,,12.4,,,,,,,,17.5,,,,,22.0,15.9,,,17.6,19.0,,13.4,13.2,,,12.5,22.3,,,,,,,,,9.7,,,14.2,,14.4,,,,,18.0,,,,10.0,,,17.4,,,16.0,,,12.4,10.2,,12.1,12.0,,23.1,,,10.9,9.9,18.7,,,,,24.9,,,,,26.0,11.2,,,,,15.7,,,,,,,,13.0,10.0,,17.8,,18.3,,,,,13.5,,12.4,15.9,14.5,,,,,,44.0,,,,,,,,
2013,,,12.7,,,,,,18.2,11.7,,,12.8,26.3,16.1,17.6,,57.0,,11.7,14.4,,,12.0,,12.7,,11.2,,29.0,,,,67.0,,,,20.0,,,73.0,11.0,,,,34.0,,11.7,16.0,,28.2,,,,,,,,34.0,,,20.3,14.3,19.5,,,11.5,,13.0,,,,10.6,,,,,,,,,,,,11.0,,17.0,15.0,,,,14.1,,,,19.2,17.0,11.4,,,16.7,,,,,,,11.0,,11.3,,,,,,,13.2,,,,,,,17.4,,,11.0,17.0,,,,11.7,,25.2,,,,,,26.7,,11.5,17.0,,11.2,,17.8,,15.9,,,26.0,,,,,,,,,,,,,16.5,43.0,23.0,10.7,,,,13.0,,20.3,,16.0,,,15.3,,15.4,,,,31.0,,30.0,,,10.7,13.9,,,,,,,,13.3,,,,,27.0,15.3,,,14.2,20.4,,16.5,13.0,12.4,,13.5,21.5,,,,,,,,,,,,15.0,,14.4,,,,,20.0,,,,12.5,,,,,,15.4,,,12.5,,,,12.2,11.2,26.1,,,,13.0,22.8,,,,,26.5,,,,,28.0,11.9,,,,,15.2,,,,,,,,14.3,13.3,,18.9,,20.0,,,,,14.8,,15.1,14.1,14.3,,,,,,53.5,,,,,,,,11.6
2014,,,17.3,,,,,,12.4,,,,,34.3,25.0,18.6,,64.0,,,11.4,,,15.5,,,,15.3,,33.5,,,,76.0,,,,24.5,,,72.0,,,,15.0,40.0,,,16.2,,36.7,,,,,11.5,,,40.0,,,22.6,11.4,21.1,,12.8,,,14.4,,,,,,,,,,,,,,,,12.0,,20.0,15.5,,,,15.3,14.3,,,23.0,,13.0,,11.3,14.7,17.7,,,,,,12.0,,14.6,,,,,,,11.4,,,,,,,15.5,,,12.8,20.0,,,,12.5,,32.0,,,,,,34.7,12.8,13.6,20.0,,13.5,,19.7,,16.0,,,25.0,,,,,,,,,,,,,16.7,48.0,32.3,14.0,,,,,,19.6,,18.7,,,19.2,,15.6,,,,31.0,,34.5,,,22.0,14.2,,13.4,,,,,,28.5,,,18.4,,33.0,17.5,,,18.4,26.5,,17.6,,,,15.3,18.6,,,,,,,,,12.8,,,15.9,,18.4,,,,,20.4,,,,14.4,,,,,,12.5,,,11.5,12.1,,,14.0,13.5,34.2,,,,14.0,31.8,,,,,38.0,,,,,34.4,14.9,,,,,19.3,,,,,,,,17.4,17.9,,19.3,,12.6,,,,,13.6,,17.2,16.6,12.6,,,15.1,,,58.2,,,,,,,,11.6
2015,,,13.4,,,,,,,,,,13.0,39.4,14.7,14.4,,64.5,,,,,,17.0,,,,19.1,21.3,37.2,,,,79.2,,,,23.5,,,77.1,,,12.3,20.1,42.9,,13.2,14.4,,41.7,,,,,13.7,,,42.9,,,25.5,13.6,19.4,,20.0,,,15.2,,,,,,,,,,,,,,,,,,26.6,14.9,,,,,26.9,,,24.2,,12.6,,,13.9,12.3,,,,,,12.5,,12.2,,,,,,,14.2,14.5,,,,,,13.5,,22.7,12.5,26.6,,,,14.0,,34.8,,,,,,40.6,13.9,,26.6,,,,25.0,,17.3,,,,,,,,,,,,,,,,13.5,54.3,29.7,19.5,,,,,,24.8,13.2,20.2,,,20.4,,,,21.1,,33.3,,40.1,,,13.5,13.4,,16.1,,13.0,23.4,,,33.4,,,14.1,,35.5,19.2,,,18.1,,,14.6,,,,,21.0,,,,,,,,,16.3,16.0,12.2,17.5,,21.5,,,,,22.6,,,,15.4,,,,12.0,,,,,,15.3,,,14.5,13.9,39.1,,,,15.3,29.2,,,,,31.4,14.8,,,,24.5,15.6,12.1,,,,21.5,,,,,,,,16.8,20.2,,19.0,,15.9,,,,,12.2,,14.2,,15.4,,,24.2,,,72.7,,,,,,,,
2016,,,13.1,,,,11.0,,,,,,10.9,32.3,15.4,12.5,,67.0,,,,,,,,,,15.0,25.9,34.0,,,,75.0,,,,17.0,11.3,,50.0,12.3,,,12.2,39.6,,10.7,14.5,,,,,,,14.4,,,39.6,,11.4,23.8,,16.4,13.2,16.7,,,15.1,,,,,,,,,,10.7,,,,10.2,,,,23.4,11.5,,,,11.4,18.1,,,24.9,,13.0,11.0,,,,,,,,,12.5,,,,,11.7,,,,12.9,14.5,,,,,,,,20.5,,23.4,,,,15.5,,45.2,,,,,,33.6,,,23.4,,,,27.8,13.1,17.2,,,,,,,13.1,,,,,,,,,,43.6,35.2,16.7,,,,,,21.5,,15.3,,,18.7,,14.4,,,,27.1,,36.1,,,,,10.4,16.6,,13.0,22.1,,,44.6,,,11.7,,40.0,19.8,,,15.4,,,13.3,,,,,19.3,,,,,,,,,12.5,,11.9,17.5,10.6,24.4,,,,,17.3,,,,15.6,,,,,,,,,,11.0,,,12.1,10.6,31.9,,,,14.7,34.4,,,,,25.2,11.1,,,,20.8,15.6,13.4,,,12.0,23.5,12.7,,,,,,,18.5,14.6,,20.3,,13.0,11.1,,,,,,10.5,,12.1,,,28.7,,,60.8,,,,,,,,
2017,,,14.4,,,,,,,,,,17.5,33.8,,15.2,,71.3,,,13.2,,,,,,,14.9,27.2,41.5,,,,86.0,,,,16.6,12.5,,54.5,12.6,,,18.3,48.3,,15.8,,,,,,,,15.3,,,48.3,,,27.2,,17.0,13.4,13.7,,,15.2,,,,,,,,,,13.9,,,,,,,,,15.7,,,,16.0,20.7,,,25.2,,,,,13.8,15.0,,,,,,12.5,,13.3,,,13.1,,,,12.7,15.4,,,,,,13.7,,28.3,,27.0,,,,18.0,,72.8,,,,,,34.0,,,27.0,,,,29.2,15.0,20.5,,,,,,,21.1,12.4,,,,,,,,16.4,52.2,40.7,20.0,,,,15.1,,24.4,,20.0,,,17.9,,18.4,,,,31.2,,39.5,,,,,,24.9,,14.8,25.2,,,56.0,,,21.2,,47.5,20.4,,,,,,14.4,,,,,23.2,,,,,,,,,14.3,13.0,,19.9,,26.2,,12.5,,,18.7,,,,16.8,,,,,,,,,,13.3,,,12.5,13.1,34.1,,,,16.1,39.8,,,,,30.4,,,,,19.6,18.3,13.9,,,,30.0,13.0,,,,,,,20.4,15.9,,18.8,,15.0,13.8,,,,14.5,,,16.1,14.3,,,31.3,15.9,14.0,75.6,,17.3,,,,,,
2018,,,15.9,,,,,,,,,,18.7,46.0,14.1,,,70.0,,,15.5,,,,,,,18.8,29.8,72.0,,,,90.0,,,,16.8,,,67.1,15.8,,,,60.0,,17.9,,,,,,,,15.5,,,60.0,,,25.0,14.9,20.9,23.0,,,,16.3,,,,,,,,,,19.9,,14.7,,,,,,,27.0,42.2,,,16.0,25.3,,,,,,,,17.3,17.4,,23.0,,,,,,,,20.1,,,,,20.0,19.5,,,30.3,,,16.3,,39.0,,23.6,,,16.4,20.0,,112.0,,,,,,46.4,,,23.6,,,,27.4,16.7,23.5,,,,,,,,15.3,,,,,,,,18.5,58.5,48.8,18.8,,,,18.6,,30.3,,20.2,,,21.2,,18.0,,,,34.9,15.3,,,,20.1,,15.9,45.3,,,,,,71.0,,,22.7,,50.0,22.7,16.7,,,,,15.1,,,,,40.1,,,,,,,,,17.8,,,21.7,15.5,29.6,,,,,,17.4,,,17.7,,,,,,,,,14.8,,,,,15.0,46.2,,,,22.6,47.5,,,,,38.5,14.6,,,,16.8,22.0,,,,,38.4,,,,,,,,25.0,19.5,17.5,,20.2,16.5,20.3,,,,16.4,,14.4,19.1,15.9,,,30.0,18.2,,84.0,,17.4,,21.9,,,15.6,
2019,16.5,,,,,,27.6,,,,,,18.5,52.2,15.3,15.8,14.5,68.3,,,14.5,,,,,,,20.0,,97.3,,,,108.0,,15.8,15.9,20.7,,57.5,,15.7,,,,60.8,,20.5,,,,21.2,,,,,,,,,,,,25.3,,,,,16.2,15.0,,,,,21.0,,,,,25.8,,,14.7,,17.2,,,37.3,58.2,,,18.2,,,,,,,27.6,,,15.8,,30.2,,,,,,,14.8,19.3,16.5,16.4,,,,,,,26.7,,,15.0,,41.6,,42.0,,,,,,111.0,,,,18.7,20.7,53.1,,,42.0,16.5,,,22.6,,18.1,60.8,,,,,,,16.9,,,,,,,,,59.5,61.1,23.7,,,17.7,,15.9,24.3,,25.6,,20.6,,24.7,23.9,,,28.2,,,,,,16.9,,18.5,,35.7,,,,,73.5,,,13.9,,,31.1,14.8,,,,,,,,,,56.9,,,,,,,,,22.4,,,,,35.1,,,,33.2,,,,,16.6,,14.0,,,,,53.3,,16.2,,,15.3,,,,,,,,59.3,,,,,35.0,16.1,,,,20.3,16.3,,,,,53.1,,17.7,,,,13.7,,19.7,31.7,18.8,,,,15.4,,,13.9,20.4,,14.2,19.2,26.3,,,14.8,,,83.8,,17.1,,23.7,,,13.8,
================================================
FILE: examples/data/map.csv
================================================
time,Afghanistan,Angola,Albania,United Arab Emirates,Argentina,Armenia,Australia,Austria,Azerbaijan,Burundi,Belgium,Benin,Burkina Faso,Bangladesh,Bulgaria,Bahamas,Bosnia and Herzegovina,Belarus,Belize,Bolivia,Brazil,Brunei Darussalam,Bhutan,Botswana,Central African Republic,Canada,Switzerland,Chile,China,Cote d'Ivoire,Cameroon,"Congo, Dem. Rep.","Congo, Rep.",Colombia,Costa Rica,Cuba,Cyprus,Czech Republic,Germany,Djibouti,Denmark,Dominican Republic,Algeria,Ecuador,Egypt,Eritrea,Spain,Estonia,Ethiopia,Finland,Fiji,France,Gabon,United Kingdom,Georgia,Ghana,Guinea,Gambia,Guinea-Bissau,Equatorial Guinea,Greece,Greenland,Guatemala,Guyana,Honduras,Croatia,Haiti,Hungary,Indonesia,India,Ireland,Iran,Iraq,Iceland,Israel,Italy,Jamaica,Jordan,Japan,Kazakhstan,Kenya,Kyrgyz Republic,Cambodia,South Korea,Kuwait,Lao PDR,Lebanon,Liberia,Libya,Sri Lanka,Lesotho,Lithuania,Luxembourg,Latvia,Morocco,Moldova,Madagascar,Mexico,North Macedonia,Mali,Myanmar,Montenegro,Mongolia,Mozambique,Mauritania,Malawi,Malaysia,Namibia,New Caledonia,Niger,Nigeria,Nicaragua,Netherlands,Norway,Nepal,New Zealand,Oman,Pakistan,Panama,Peru,Philippines,Papua New Guinea,Poland,Puerto Rico,North Korea,Portugal,Paraguay,West Bank and Gaza,Qatar,Romania,Russian Federation,Rwanda,Saudi Arabia,Sudan,Senegal,Solomon Islands,Sierra Leone,El Salvador,Somalia,Serbia,South Sudan,Suriname,Slovak Republic,Slovenia,Sweden,Eswatini,Syrian Arab Republic,Chad,Togo,Thailand,Tajikistan,Turkmenistan,Timor-Leste,Trinidad and Tobago,Tunisia,Turkey,Tanzania,Uganda,Ukraine,Uruguay,USA,Uzbekistan,Venezuela,Vietnam,Vanuatu,"Yemen, Rep.",South Africa,Zambia,Zimbabwe
1960,,,,,,,459760073.6,91559097.96,,,383220247.4,1301005.322,1268378.23,,,,,,,,382729752.1,,,,,1702442711.0,200093758.2,126791042.6,,,,,,75960813.87,0.0,,,,2884517772.0,,161137605.4,38300000.0,,22400000.0,,,232839815.9,,15335262.65,89557618.81,,3881219690.0,,4587798165.0,,20821777.35,,,,,170327798.1,,12084076.43,,3920000.0,,,,,681765681.8,25800590.11,98679867.99,118726952.5,0.0,190277777.8,1009308856.0,,56139977.54,480555555.6,,,,,275643564.4,,,22906905.2,,5571997.771,16653016.65,,,5260312.876,,41596762.37,,1604193.589,84000000.0,,,89512589.51,,,,,,51286741.89,,,,23379990.65,,454719432.1,148119940.8,,101219676.1,,208845208.8,,49085687.49,123821340.0,,3550000000.0,,,105157457.3,7088541.594,,,740833333.3,,,140888888.9,18667432.51,,,,4384473.695,,,,,,,526848900.4,,90223463.69,,,62825161.22,,,,,15952380.95,468810916.2,,,,,45380000000.0,,234357740.4,,,,69999972.0,,
1961,,,,,,,470960075.4,91029854.62,,,391218827.4,2173203.947,1643154.204,,,,,,,4935417.964,342339720.8,,,,,1677820881.0,237368366.9,160930923.5,,,,,,97313432.84,0.0,,,,3266495653.0,,170837712.9,36300000.0,,18700000.0,,,239348772.1,,18555265.31,105350974.8,,4131003787.0,,4747398101.0,,27454210.3,,,,,167762365.8,,12084076.43,,3830000.0,,,,,748388248.4,27564733.02,105940594.1,125481949.8,0.0,241805555.6,1062907313.0,,55509977.8,492361111.1,,,,,157061350.1,,,27837147.81,,7167997.133,17083517.08,,,5800866.499,,48275957.47,,8482781.25,86400000.0,,3922368.099,85617085.62,,,,,,42466728.95,,,,28279988.69,,551530519.8,165059934.0,,96678751.22,,210105210.1,,63020431.3,128712871.3,,4025000000.0,,,171194666.8,7187461.316,,,794666666.7,,,71555555.56,20505456.63,,,1930599.228,4441787.077,3160000.0,,,,,,564736401.6,,90223463.69,,326999.9185,58741404.86,,,,,18571428.57,301330376.9,,,,,47808000000.0,,114632682.9,,,,113749954.5,,
1962,,,,,305162407.2,,489440078.3,100026991.4,,8420000.0,422220787.9,2734537.618,4901760.716,,,,,,,5195618.571,387449035.5,,,,,1671313753.0,273728261.2,162626224.4,,8766845.976,,,,153596253.4,0.0,,,,4308248214.0,,224550248.0,38000000.0,,18300000.0,249697766.8,,308791693.5,,20185391.65,154403280.6,,4493323590.0,,5005697998.0,,27944464.05,,,,,170034222.7,,11954140.13,,3830000.0,,,,,1065436065.0,29163487.53,109900990.1,135064946.0,0.0,210604174.5,1222013656.0,,60409975.84,538194444.4,,,,,186153846.2,,,40876824.5,,16687993.32,15849765.85,,,7099970.149,,53848540.36,,9179552.203,99200000.0,,4342608.994,90704340.7,,,,,,43773397.53,,,,38639984.54,,603866851.7,191939923.2,,96323106.14,,200340200.3,,66368381.8,82889601.24,,4375000000.0,,,199785222.2,8276810.921,,,902000000.0,,,84222222.22,24842044.8,,,1983799.206,6218501.908,3700000.0,,,,,,636258725.2,,149593495.9,,714244.9003,80303734.18,,,,,14285714.29,330376940.1,,727985.4403,,,52381000000.0,,203900682.8,,,,186199925.5,,
1963,,,,,242219771.2,,553280088.5,125959915.1,,1012000.0,444601321.5,2963071.799,5281287.753,,,,,,,6404292.358,441999606.2,,,,,1610091701.0,294995369.3,152917455.4,,8064779.443,,58217821.78,,170000000.0,0.0,,,,4981004024.0,,239028020.3,39000000.0,66436300.15,17100000.0,335799697.8,,316520311.1,,27289522.51,128576498.4,,4628060852.0,,5196797921.0,,31096095.34,,,,,179495712.8,,14812738.85,,3820000.0,,,,,1795449295.0,30210947.39,128712871.3,163218934.7,0.0,259250864.2,1463283724.0,,61879975.25,629861111.1,,1861999.255,,,185384615.4,,,33900603.43,,18675992.53,13917763.92,,,6962653.392,,74893933.2,,8956747.538,112000000.0,,4375224.475,100322350.3,,,,,,60760089.11,,,,45499981.8,,637373073.3,205099918.0,,100042547.6,,219660219.7,,97315436.24,94235401.82,,4950000000.0,,,199087891.6,9208934.811,,,904833333.3,,,113777777.8,28144744.4,,,2155999.138,6103875.145,4480000.0,,,,,,697922566.5,,,,1134619.78,85501269.8,,,,,15238095.24,350000000.0,,2729945.401,,,52295000000.0,,245397307.8,,,,188999924.4,,
1964,,,,,245740498.0,,655760104.9,164594679.0,,1162000.0,497059226.9,3803662.454,5358593.135,,,,,,,,354227857.1,,,,,1657457283.0,329525835.0,149950377.7,,11190603.48,,49818181.82,,190000000.0,0.0,,,,4888248899.0,,255387903.0,42500000.0,99856999.91,20600000.0,448499596.4,,386820000.7,,36140000.0,139910553.9,,4917956554.0,,5508997796.0,,33302237.24,,,,,188207553.1,,12993630.57,,5850000.0,,,,,1986654487.0,36054670.79,155445544.6,185198925.9,0.0,278584261.9,1586666708.0,,61879975.25,718055555.6,,5879997.648,,,137481470.4,,,38065368.32,,21475991.41,13938763.94,,,9278159.213,,69993222.0,,9455019.789,120000000.0,,5174939.905,97912597.91,,,,,,84606790.76,,,,54319978.27,,735383641.4,219799912.1,,123402030.6,,257880257.9,,120432513.0,93605898.71,,5200000000.0,,,224400993.0,9815376.859,,,949166666.7,,,123555555.6,41872487.08,,,2353399.059,5724173.991,5420000.0,,,,,,758619889.8,,112041884.8,,3383300.616,87235576.92,,,,,17478991.6,380897803.7,,5487890.242,,,51213000000.0,,200459770.1,,,,271599891.4,,
1965,,,,,252407602.9,,787360126.0,142895702.0,,2153481.481,500722082.8,3994923.713,3509330.33,,,,,,,,632869026.5,,,,,1574704540.0,343475228.4,168215772.4,,12902909.89,,78909090.91,,185202864.0,0.0,,,,4978559240.0,,285791224.7,40200000.0,105528391.4,23800000.0,515199536.3,,439425746.0,,42900000.0,149572371.7,,5124506743.0,,5791097684.0,,35578415.39,10492201.74,,,,209674799.6,,18580891.72,,6250000.0,,,,,2125989626.0,39086791.42,200000000.0,225742909.7,0.0,313917713.1,1719942315.0,,62929974.83,821388888.9,,9897996.041,,,132131636.1,,,44598531.83,2700000.0,29119988.35,14474264.47,,,9520198.149,,63175700.38,,10710827.9,119200000.0,,4647822.379,107241857.2,,,,,1771001.771,118580173.9,,,,65939973.62,,749993912.4,265579893.8,,126982427.6,,439635439.6,,132736763.6,93114395.13,,5525000000.0,,,232350562.0,11679624.64,,,1034000000.0,,,177777777.8,56375646.18,,,2505998.998,6483576.298,5170000.0,,,,,,844543330.0,,118062827.2,,3362428.13,94266826.92,,,,,12761904.76,422676991.2,,10737785.24,,,51827000000.0,,227272727.3,,,,289449884.2,,15600000.0
1966,,,,,279225436.3,,986720157.9,167770139.0,,2286857.143,563377895.4,3724387.206,3907553.79,,,,,,,,718216574.6,,,,,1614422827.0,378234372.7,186697964.8,,13269401.41,,78363636.36,,172592592.6,0.0,,,,5063637742.0,,301137663.3,37200000.0,104515642.9,22900000.0,481849566.3,,560943076.5,,43420000.0,152916847.1,,5414601741.0,,5984997606.0,,47344505.52,13895077.98,,,,238979294.9,,19100636.94,,6500000.0,,,,,1661154906.0,38314978.9,256105610.6,234996906.0,0.0,375501251.7,1904604599.0,,76089969.56,932430555.6,,13047994.78,,,176901786.3,,,51425377.31,2800000.0,58519976.59,15282765.28,,,9923596.376,,67938085.05,,11342782.95,130400000.0,,4636149.757,105456855.5,,,,,1848001.848,148633551.3,,,,55719977.71,,770691796.3,272579891.0,,148221481.3,,549675549.7,,145041014.2,109615384.6,,5975000000.0,,,257175532.1,13588794.05,,,1076000000.0,,,300444444.4,50315910.4,,,2539598.984,6591038.889,6500000.0,,,,,,906980385.5,,102356020.9,,2889961.657,105540865.4,,,,,13714285.71,442035398.2,,14265714.69,,,63572000000.0,,238636363.6,,,,324449870.2,,16950000.0
1967,,,,,251930719.1,,1197840192.0,176767275.8,,2376000.0,607918707.2,3910553.209,3695106.93,,,,,,,,746139163.6,,,,,1775500366.0,383265301.5,182705341.3,,14711322.31,,45907648.68,,178541885.0,0.0,,,,5352122317.0,,323292901.4,35800000.0,99249350.83,25300000.0,508299542.5,,545917155.9,,37000000.0,146661680.3,,5856108417.0,3008117.853,6200583812.0,,,,,,,313035616.3,,21179617.83,,6800000.0,,,,,1487733333.0,39693241.93,331023102.3,234541906.2,0.0,605514168.1,1928786564.0,,104719958.1,1039027778.0,,15987993.6,,,218100895.7,,35544791.67,57730955.03,3050000.0,79519968.19,15711432.16,,,8229323.824,,70348918.78,,12112471.79,133600000.0,,5081280.157,102039102.0,,,,,2133370.892,143406877.0,,,,239959904.0,,883921396.7,293579882.6,,149591230.9,,478275478.3,,243980653.5,129487179.5,,6275000000.0,,,333045103.3,14936443.05,,,1123833333.0,,,336222222.2,52268811.03,,,2883153.573,6777307.379,7530000.0,,,,,,921961412.7,,118586387.4,,3105678.432,126346153.8,,,,,15428571.43,508407079.6,14629994.15,16841663.17,,,75448000000.0,,270454545.5,,,,373099850.8,,19000000.0
1968,,,,,337142857.1,,1321600211.0,182059709.2,,2590857.143,646381114.5,4293821.825,3760628.522,,,,,,,11583123.79,755307566.7,,,,,1797265817.0,373889479.6,173781024.3,,15305071.4,,50479041.92,,141184847.8,0.0,,,,4827481334.0,,345466666.7,37300000.0,99249350.83,29300000.0,648599416.3,,668753624.8,,34660000.0,150060024.0,,6129940876.0,2989113.97,5563195549.0,,44271216.36,14178651.0,,,,366771882.7,,20400000.0,,7050000.0,,,150166666.7,,1586866667.0,37141485.43,437293729.4,291437883.4,0.0,690001971.4,1991165044.0,,127749948.9,1168194444.0,,16365993.45,,,278696524.4,,35461875.0,65572316.45,3050000.0,95479961.81,14305226.32,,,7479003.122,,90900288.31,,13044200.39,148800000.0,,5251146.164,104590604.6,,,,,1881000.752,148306884.2,,,,369039852.4,6891062.971,905836803.3,321999871.2,,135520021.7,,492555492.6,,113178294.6,153846153.8,,7225000000.0,,,371893392.1,16621004.29,,,1255833333.0,,,338666666.7,57725445.15,,,2658001.063,6619695.579,8340000.0,,,,,,941001815.1,,190052356.0,,3288025.367,154639423.1,,,,5087500.0,17523809.52,570685840.7,16239993.5,19942601.15,,,80732000000.0,,272727272.7,,,,399699840.1,,30600000.0
1969,,,,,442857142.9,,1314880210.0,193173819.4,,3337142.857,675078864.4,4015987.013,4023680.475,,,,,,,12254609.23,816622811.0,,,,,1770108751.0,409105981.1,179980922.7,,16156269.59,,72455089.82,,131638962.8,0.0,,,,5471706536.0,,352000000.0,35600000.0,99249350.83,39700000.0,888949199.9,,805713226.3,,34420000.0,140291965.8,,5909705121.0,4350652.598,5544595564.0,,49026817.67,14705286.61,,,,425403589.9,,17600000.0,,7200000.0,,,173333333.3,,1691433333.0,41630596.27,566006600.7,375997849.6,0.0,872002491.4,2003805617.0,,125859949.7,1335416667.0,,15749993.7,,,347028223.8,,36133958.33,65138973.39,3050000.0,143079942.8,15863429.19,,,7817857.633,,84972008.64,,13014516.19,180000000.0,,5673928.012,114418614.4,,,,,1959000.784,143733544.1,,,,684459726.2,6988120.196,1017240120.0,350279859.9,,147560023.6,,552720552.7,,128940568.5,189230769.2,,7975000000.0,,,374919807.0,17856349.21,,,1380000000.0,,,429333333.3,87018954.62,,,3297601.319,7508052.995,9000000.0,,,,,,1017260076.0,,194502617.8,,3435130.654,184903846.2,,,,5262500.0,16952380.95,596792035.4,20089991.96,22861542.77,,,81443000000.0,,263636363.6,,,,425599829.8,,42350000.0
1970,2939585.501,,,,445713893.9,,1277360204.0,199524739.5,,,747755088.9,4099087.202,4185916.94,,,,,,,16787135.93,1026234374.0,,,,,1889157918.0,436090053.6,388383950.3,,17727738.12,20339866.07,102395209.6,13100436.68,162662459.1,0.0,,,,6167271406.0,,395600000.0,35900000.0,98844251.44,30700000.0,1092499017.0,,859146961.8,,34540000.0,152891345.2,413396.8127,5882387677.0,4638155.158,6074395140.0,,46918664.51,15069880.49,,,,473596990.5,,32300000.0,,9900000.0,,,223333333.3,,1832966667.0,50986848.32,620132013.2,401050839.6,0.0,1259646456.0,2216771793.0,,109759956.1,1575347222.0,,17023993.19,,,386403740.4,68739972.5,38045833.33,64546127.54,3550000.0,242479903.0,21042038.72,,,8310003.469,,88924195.09,,12134982.78,176800000.0,,6150439.756,122781872.8,,,,,2055000.822,199593626.1,,,,662339735.1,8346921.345,1079942533.0,388359844.7,5185185.185,171920027.5,,635250635.3,,218087855.3,155055171.2,,8525000000.0,,,436103595.4,19316666.67,,,1542000000.0,,,471555555.6,108271108.6,,,3986401.595,7135516.014,11200000.0,,,,,,1118164544.0,,199738219.9,,3650466.891,217223557.7,,,,6200000.0,22476190.48,564858542.6,29539988.18,26627467.45,,,79846000000.0,,272727272.7,,,,417899832.8,,45950000.0
1971,,,,,519719484.2,,1331754789.0,209277606.7,,2628571.429,828721558.4,4285361.496,4343468.092,,,,,,,15863843.46,1075071453.0,,,,,2077659711.0,511387689.4,651589862.9,,23968971.08,21501256.56,101796407.2,13749473.41,263898574.6,0.0,,,,7255896950.0,,430225386.9,36600000.0,99946261.07,29700000.0,1266148860.0,,900614349.2,,36134238.09,177615098.1,535616.7685,6300175574.0,5498336.699,6723936533.0,,41139332.3,26327764.42,,,,515997642.0,,22200000.0,,11400000.0,,,225670995.1,,2255256983.0,63486922.17,402310231.0,426263340.2,0.0,1270657787.0,2648079366.0,,108639956.5,1896540416.0,,22077991.17,,,460899849.3,73434840.97,39061458.33,66920095.55,4050000.0,243035871.6,32258064.52,,,9047009.782,,111288010.2,,12755677.36,191200000.0,,6323435.839,127758749.5,,,,,2343860.95,228027756.5,,,,639259541.9,8443978.57,1249389090.0,428293444.8,5891358.025,180841169.8,29065079.3,739410739.4,,247286821.7,161310133.7,,9452062887.0,,,518294924.4,20750000.0,,,1618333333.0,,,587274311.7,109994256.2,,,3770637.41,8516583.63,11400000.0,,,,,,1238804427.0,,176963350.8,,4183674.952,262656250.0,,,,8620776.959,24860541.92,570873159.5,42559982.98,52687946.24,,,74862000000.0,,352272727.3,,,,485866527.2,,49850000.0
1972,,,,,766000000.0,,1484443745.0,249425547.4,,3600000.0,1026588091.0,4904216.992,4947862.936,,,,,,,20700640.94,1195501488.0,,,,,2233737031.0,601426981.7,745661188.8,,31742504.8,24894059.39,94011976.05,12744615.68,170587589.6,0.0,,,,9006765501.0,,487244020.6,39500000.0,109942841.3,37300000.0,1066049041.0,,1256164586.0,,41043478.26,220831905.3,787703.1062,7531246912.0,6673861.634,7860461050.0,,30202525.76,31711404.23,,,,573692101.5,,24000000.0,,15449922.75,,,231632283.7,,2497244706.0,84039646.65,371947194.7,466113288.1,0.0,1461373750.0,3289362465.0,,129359948.3,2567519428.0,,29735988.11,,,531950093.4,90743549.91,20254568.13,106204437.0,4050000.0,202768227.1,30283133.9,,,11731387.88,,140446991.6,,16129256.25,242400000.0,,8332407.51,117181275.2,,,,,2697870.896,251103009.0,,,,904095638.4,10967466.42,1522236183.0,491632831.2,6503703.704,206172013.2,54524419.38,478207381.8,,276485788.1,196259386.0,,10054347826.0,,,593121489.2,28851587.3,,,1824593128.0,,,930574823.6,107983917.3,,,4234610.668,11140612.1,13200000.0,,,,,,1458082236.0,,260209424.1,,5126414.525,284086538.5,,,,9121523.151,31650677.14,703957597.2,53689677.86,64944701.11,,51429281.91,77639000000.0,,404651162.8,,,,492386546.2,,58450000.0
1973,3341271.551,,,,1294000000.0,,1855729307.0,328898821.4,,5923067.599,1296519775.0,6698401.446,6079259.183,48606800.13,,,,,,21129139.97,1512670977.0,,,,,2363060955.0,764969998.4,1005919720.0,,28713844.11,31636823.71,102395209.6,19426710.16,173879934.0,0.0,,,,11938703823.0,,581866269.9,42000000.0,136757097.8,49200000.0,1243856105.0,,1521319435.0,,48433591.42,276967793.9,931727.0694,9496156577.0,9421730.099,8448664898.0,,41052242.84,36058910.7,,,,674802452.2,,23400000.0,5032808.212,15950000.0,,,263447030.8,,2529921054.0,98307831.83,480857166.9,665185289.0,0.0,2574504910.0,3638240139.0,,150652370.4,3374561100.0,,37319917.16,,,544785374.6,136560430.5,21220297.97,103815507.2,3750000.0,298307480.0,25146427.18,,,15421205.92,,185783993.8,,20346496.12,300800000.0,,10974072.3,152452317.5,,,,,4711557.475,296726189.3,,,,1020223592.0,10433752.95,1917119276.0,607891665.2,7152747.935,246331493.0,89826506.52,477624634.2,,364341085.3,301201252.8,,12059701493.0,,,682681692.2,30915873.02,,,545381021.8,,9365839.708,1565589936.0,113153360.1,,,5022404.825,12475644.13,16100000.0,,,,,,1702215353.0,,388674557.0,,6873376.434,312408499.1,,,,8944886.23,38188218.1,861625441.7,77916010.24,64872640.27,,112465598.2,78358000000.0,,420930232.6,,,,752926325.6,,86900000.0
1974,3581366.351,,,,1626000000.0,,2127274763.0,422543505.8,,7682539.683,1482318436.0,6447726.47,6269084.564,72298235.04,,,,,,39766636.07,1790114213.0,,,,,2809465529.0,888478644.0,1103190481.0,,41129183.02,34625371.31,189221556.9,24137429.63,194904101.8,0.0,,,,13773713249.0,,732087483.0,57600000.0,260168630.0,74800000.0,1852779425.0,,1968178718.0,,74758454.11,308807797.1,1353022.08,9954624929.0,10494173.37,9346449845.0,,64121526.39,,,,,1049955703.0,,28400000.0,11136757.59,16900000.0,,,308005578.3,698192771.1,2895415720.0,111205418.9,3877862663.0,1427457784.0,0.0,3475602770.0,3890003394.0,,163307378.0,3962157887.0,,46763683.97,,,852963864.0,384614072.6,,179142179.6,4550000.0,431682379.0,28417847.61,,,18227348.89,,241889161.2,,25882465.36,407200000.0,,11632496.21,159999341.9,,,,,5304902.622,397163356.3,,,,1351141235.0,14995341.25,2285358296.0,710867536.4,8446969.697,291444123.1,255573248.4,609191919.2,,454780361.8,521518532.3,,13162650602.0,,,988203732.2,31434126.98,,,565500000.0,,7786746.398,,111430212.5,,,6779970.098,13350320.28,21400000.0,,,,,,1855084673.0,,537380924.3,,8097048.254,363887784.6,,,,8584035.885,46505447.78,1136704698.0,120044738.2,80157512.31,,187557473.6,85906000000.0,,602325581.4,,,,1102318401.0,,118550000.0
1975,4203664.569,,,,798359535.2,,2268707674.0,546724394.0,,8533333.333,1927662478.0,7857666.124,18062366.73,80830559.47,,,,,,58304466.42,2141126693.0,,,,,3180915490.0,1032046117.0,486720076.9,,45886157.16,46770377.91,173652694.6,33493068.55,227942151.2,0.0,,,,15278274626.0,,931928334.6,65900000.0,332252159.2,102000000.0,1926890602.0,,2108232941.0,,125072463.8,433161415.7,2056253.749,13030408263.0,16844521.8,11543753775.0,,78825105.71,,,,,1433217345.0,,44900000.0,32436379.69,21400000.0,,,366147086.5,1063855422.0,3323646801.0,154362392.7,5951043742.0,1590171817.0,0.0,3758315381.0,4217069829.0,,180742482.6,4534902135.0,,54090933.23,,,1030991736.0,,,165944100.3,5500000.0,287788252.7,30478781.02,,,22704189.64,,413326127.9,,30189630.07,504800000.0,,19130897.33,138923723.2,,,,,9362342.027,440725547.0,,,7330399.929,3028584797.0,18537929.96,2814545011.0,912771143.3,10529138.04,292259947.4,523306311.5,771161616.2,,710909865.5,,7933048.215,14337349398.0,,,778693990.9,43488888.89,,,635500000.0,,9319735.189,,119471568.1,,,6526389.844,15652099.64,23100000.0,,,,,,2232315959.0,,887837837.8,,11114584.74,416034898.2,,,,10703751.5,75323106.3,2284986255.0,138323476.0,86567896.18,,156541418.6,88400000000.0,,711627907.0,,,,1431695127.0,,148600000.0
1976,5393251.216,,,,2050248959.0,,2441084025.0,581408727.3,,9971014.493,2109619988.0,7160493.827,19531282.7,105287729.1,,,,,,66776055.56,2576476982.0,,,,,3581805735.0,1228176857.0,599806958.7,,52462858.34,48470391.3,120795356.0,34337727.56,229146910.6,0.0,,,,15457151068.0,,945240876.0,76200000.0,480640373.5,117000000.0,2201613068.0,,2521013875.0,,128043478.3,416956433.4,2751430.02,13304260893.0,20117179.33,10766652890.0,,88961005.06,,,,,1559887280.0,,55500000.0,34000000.0,23700000.0,,,382438611.4,1275301205.0,3294910612.0,152839849.3,7186307294.0,1761176240.0,0.0,3648665017.0,3844185965.0,27445027.45,294593397.9,5008396504.0,,75910048.12,,,1708677686.0,,,173074847.0,6400000.0,326295131.6,23669757.49,2291375.573,,25496422.66,,577239433.3,,33040454.15,531576968.5,,21761874.87,155142207.5,,,,,9205803.654,439885582.5,,,8181627.956,2644426038.0,25234878.48,2898055461.0,977362861.3,11876000.0,271671526.2,589099594.7,833181818.2,,778394355.4,714759968.1,21985174.2,15572289157.0,,,623403324.0,46757936.51,,,691500000.0,,10297663.29,,179207352.1,,,6020631.897,20531871.89,26300000.0,,,,,,2345444903.0,,945058881.2,,14233103.16,531909157.3,,,,12613977.4,83960118.94,2534775215.0,136687529.9,101074621.0,,133232399.7,91013000000.0,,593023255.8,,,,1677275419.0,,199800000.0
1977,6127288.063,,,,2058223942.0,,2500485127.0,686893244.3,,13955555.56,2496513862.0,10147346.14,22903777.27,128522908.8,,,,,,73254329.6,2499644658.0,,,5650505.962,,3752174526.0,1226534416.0,924042756.7,,51449039.4,55167290.78,161471103.3,36633018.56,280082338.8,0.0,,,,17304663483.0,,1063101451.0,86500000.0,471669448.0,205000000.0,2751058001.0,,2808847050.0,,135048309.2,461856960.1,3651464.946,15041676195.0,28927873.66,11583506608.0,,121717795.7,,,,,1838775321.0,,75200000.0,24274509.8,31800000.0,,,419914698.7,1468674699.0,3477080945.0,171725706.0,7617207960.0,2007693506.0,0.0,3180556220.0,4556493518.0,30580030.58,262704735.1,6157312577.0,,147766705.0,,,2237603306.0,748518665.9,,126427193.6,7750000.0,479647087.8,28081232.26,2780125.695,,28710697.24,,731455472.0,,43959890.67,437692985.8,,26050146.53,169293678.2,,,39135467.92,,13625117.4,637879477.3,,,11010257.25,3138198948.0,35231772.65,3704801157.0,1114680192.0,13208000.0,307431743.8,514837869.1,913585858.6,,1031640130.0,754442226.1,22276752.32,17379518072.0,,,576875736.5,55486507.94,,,717000000.0,,16062942.55,11584767351.0,216538485.8,,,7064980.375,28588099.64,31700000.0,,,,,,2560335056.0,5390626.348,998216560.5,,21108759.36,688722114.1,,,,15364583.33,121692505.0,2765773072.0,190729876.6,131916696.9,,160545078.5,101000000000.0,,748837209.3,,,,2073738018.0,,285350000.0
1978,,343271609.1,,,3103989947.0,,2816316206.0,877450655.2,,17033333.33,3166647025.0,8552841.493,32372283.48,134871031.7,,,,,,97672439.47,2690623102.0,,,14305862.29,,3969158477.0,1668885136.0,1036145035.0,,86764810.15,71436168.33,214951896.0,37960435.35,360663621.1,0.0,,,,21416956348.0,45014.37647,1322665932.0,103000000.0,627852442.1,164000000.0,2485279987.0,,3470695273.0,,178212560.4,506869453.0,7239265.398,18873052740.0,,14217505105.0,,101354226.4,85228280.98,,,,2118929495.0,,71700000.0,17333333.33,43100000.0,,,538098139.6,1627662342.0,3975819130.0,217465500.0,8113739881.0,1986021658.0,0.0,3117508058.0,5540992658.0,,304948875.3,8657135933.0,,239475870.0,,,3190082645.0,738039577.8,,252760229.7,8900000.0,729941800.6,21946485.42,4013501.003,,36648101.37,,772559382.0,,52181427.4,518287192.6,,31020668.63,183429289.3,,,76333333.33,,25570521.9,607070689.6,,,14774701.32,3022642270.0,44549266.25,4226968876.0,1307453860.0,14867263.94,388573502.3,574334105.4,1031868687.0,,665178542.9,622746329.0,27421800.61,10292598967.0,,,622564542.5,69522222.22,,,834413568.5,,14393007.32,13404087588.0,175916407.9,,,8118123.472,34987046.26,81400000.0,,,,,,2873317738.0,8259877.065,1213503185.0,,22733718.58,942007071.2,,,,18312500.0,148496651.6,2727882976.0,421677764.0,151699852.8,,185943655.8,109000000000.0,,827906976.7,,,,2067988017.0,,347750000.0
1979,,504712881.9,,,5057062803.0,,3100685079.0,1049972515.0,,20000000.0,3631580468.0,17562828.48,32032417.9,136251932.9,,,,,,119737096.1,2829161200.0,,,24355619.03,,4084145738.0,1945005774.0,1312899709.0,,102735025.1,88354754.09,190944707.6,52566260.19,467687274.7,0.0,,,,24777567445.0,45014.37647,1529188589.0,120000000.0,711681247.4,186000000.0,1152855496.0,,4910953932.0,,276328502.4,642602892.8,9572320.678,22667912461.0,56881751.77,18373780394.0,,66362988.08,71021091.75,,,,2424261939.0,,90200000.0,17176470.59,49550000.0,,,621170386.2,1552431166.0,4589738352.0,290141008.5,4993779939.0,2371712821.0,0.0,3394518704.0,6904107163.0,,399556492.3,9173587661.0,,291024720.0,,,3543388430.0,881077990.8,,346311001.5,9400000.0,853569148.6,28073183.58,5370993.429,,42364311.06,,896353802.0,,81891303.63,679663588.4,,36197478.4,190866354.1,,,78000000.0,,43029681.3,778636837.2,,,17482911.97,3070825338.0,32278195.0,5038015817.0,1453771374.0,17300000.0,436892310.9,584105385.1,1181818182.0,,520650234.3,874273979.8,30150739.65,1936746988.0,,,701973945.7,63530158.73,,,860000000.0,,19633017.15,17616726771.0,239999813.6,94390801.14,,10785547.37,54644241.99,87700000.0,,,,,,3368143352.0,10183559.48,1581656051.0,,22498848.26,1199048431.0,,,,27218750.0,160900650.0,3001142306.0,375458521.9,206806783.0,,279396248.9,122000000000.0,,925581395.3,,,,2160867340.0,,441150000.0
1980,,497359449.2,,,6477389013.0,,3657867290.0,1152895906.0,,27763333.33,3958575327.0,23617947.75,35360658.84,167255351.2,,,,,,159008134.9,2259307479.0,,,31844060.6,,4744402251.0,1996765550.0,1787179487.0,,118473116.2,99867474.44,152183675.0,57416698.22,611248236.6,0.0,,,,26692620067.0,1817455.45,1617653843.0,105000000.0,890174464.8,209000000.0,1361426627.0,,5508356433.0,,359323671.5,873508619.5,10367191.75,26427190947.0,68629307.08,25363413472.0,,120610364.9,60309243.02,,,,2275580289.0,,103760000.0,21882352.94,57000000.0,,,740802218.1,2114454046.0,5420809519.0,362511166.6,4874889400.0,2976492818.0,0.0,4120814786.0,7915696626.0,,416212133.9,9711741591.0,,271691156.2,,,3980692489.0,950805965.3,,503476314.8,12750000.0,1074139253.0,30811520.22,11639193.97,,52422325.29,,1117955622.0,,90402004.94,810422203.8,,38337750.85,202083467.2,,,92283380.97,,53134112.22,1035886222.0,,,17039000.38,3029915085.0,47159888.99,5269306825.0,1668684529.0,20083333.33,676939260.5,883757961.8,1429292929.0,,948572813.3,879326573.0,38795968.68,1506218239.0,,,867810131.0,89326190.48,,616740088.1,755555555.6,,23552267.56,20724493047.0,228000000.0,96502271.87,,15907791.96,62055971.53,95500000.0,,,,,,3791756609.0,13135761.89,2253248408.0,,24763347.22,1373227227.0,,,,36927083.33,194096119.6,2671976286.0,232291721.3,398813536.5,,477266464.6,138000000000.0,,1002325581.0,,,,2661671165.0,,442750000.0
1981,,618891637.1,,,5882767126.0,,4323644157.0,969372327.1,,29995555.56,3385176171.0,17186114.21,33915894.76,174106138.7,,,,,2079250.0,238715537.6,2517859757.0,,,31162681.75,,5141128191.0,1810878508.0,2292307692.0,,92002752.72,120247597.8,71671583.96,63535260.98,638643433.3,0.0,,,,23094364442.0,5351084.002,1446085210.0,125000000.0,806569334.6,234000000.0,1817140261.0,,4977748533.0,,366980676.3,790880895.3,11361681.76,23867080426.0,88322642.61,24100707136.0,,195559792.2,52510728.9,,,,2578400684.0,,162640000.0,22400000.0,60500000.0,,,757701599.6,2654105930.0,5879007036.0,327043451.1,8121567621.0,4086497762.0,0.0,4700103232.0,7387713298.0,44922028.49,438818156.8,10851176225.0,,241171594.4,,,4463839960.0,1042021630.0,,373214770.0,26350000.0,557334522.3,27684625.66,12392766.95,,46185938.88,,975581462.8,,86482746.69,1284948561.0,,31648946.94,205288116.6,,,99294190.87,,38506688.83,1446539243.0,,,13984418.41,2135475014.0,71927312.7,4527100427.0,1649618173.0,21959582.69,660354444.4,1133468442.0,1737373737.0,,994511245.1,982322001.6,38248532.25,1567860808.0,,,843539896.8,131942063.5,,1059505495.0,915333333.3,,28682783.33,24399927864.0,203987417.2,86843238.35,,15788111.47,78352569.4,134000000.0,,,,,,3490216138.0,12379584.3,2437707006.0,,22525953.98,1415853972.0,,,,35166666.67,228835732.4,2814869761.0,331019097.0,108146878.4,,709699535.8,170000000000.0,,1009302326.0,,,,3011979548.0,,389700000.0
1982,,668493883.3,,,2279872697.0,,4459544582.0,995369996.9,,36665555.56,2891774968.0,16554779.89,32866107.13,184674562.5,,,,,2576875.0,123726843.5,3031328924.0,,,23551463.59,,6017321456.0,1928314953.0,2160747854.0,,86425689.12,131616586.4,147162426.6,72427162.01,667866120.9,0.0,,,,22349480132.0,29608206.12,1400430126.0,126000000.0,932452707.7,229000000.0,2307139561.0,,4956242441.0,,387367149.8,844911290.5,14939154.85,22522681678.0,88555899.77,24785700685.0,,170273456.3,52266833.59,,9407751.857,,2638652976.0,,176590000.0,24710000.0,67000000.0,,,750740503.1,2741068094.0,6302107956.0,342048872.7,9703525315.0,,0.0,4518481889.0,8062597403.0,53608918.73,465258786.0,10193936012.0,,243721560.5,,,4646524886.0,1285119360.0,,246651755.1,43350000.0,709332450.6,25974668.7,14965648.08,,41434171.49,,959485440.9,,,858130162.7,,29518633.26,195419415.6,,,102992610.5,,26977480.08,1438303667.0,,,12781263.88,1651914513.0,,4829535607.0,1697544015.0,25491173.23,608767756.5,1261580776.0,1852711543.0,,1268695337.0,964637002.3,,2122035928.0,,,803004962.0,208026190.5,,1467252747.0,989333333.3,,28175370.73,27095797466.0,172214638.2,73072311.52,,14128284.83,94372953.74,83900000.0,,,,,,2980130869.0,11074579.58,2726878981.0,,18541962.11,1507634749.0,,,,,328600426.3,2754732303.0,366761862.8,87488449.89,,599135224.1,214000000000.0,,1523255814.0,,,,2744699858.0,,437450000.0
1983,,778628250.6,,,2848053181.0,,4511671066.0,991995097.5,,34369644.2,2671831608.0,17765951.31,29317755.98,231804492.5,,,,,2899750.0,89973482.6,2082669251.0,,,24454614.24,,6947104072.0,1946035043.0,1497684301.0,,76251882.88,129898757.7,78919799.79,,859813605.6,0.0,,,,22127066321.0,30902369.44,1374960497.0,126000000.0,952430671.6,200000000.0,3004281422.0,,4770965313.0,,408405797.1,905188931.5,15102947.83,21653641575.0,86599171.8,23631058396.0,,71148287.35,,727666.8802,18064755.2,,2195463586.0,,184250000.0,22100000.0,70000000.0,,,700708442.0,2047257950.0,6830768698.0,310258091.7,10550357293.0,,0.0,4265358582.0,8409527116.0,50162507.37,484742989.8,11429317256.0,,208691732.7,,,4714159753.0,1425498410.0,,492472676.6,38750000.0,,45952585.36,14069652.63,,41151224.44,,628153423.0,,,778556797.2,,26767016.74,192169991.5,,,116316977.5,,22217303.96,1342380183.0,,,12354815.18,1627393327.0,,4256634367.0,1698789946.0,29081758.93,567555469.4,1457006369.0,1985972402.0,,927159637.2,800165576.3,,2195521573.0,,,692947642.5,221221334.9,,905192307.7,888319702.0,,28024671.7,21872720536.0,230769230.8,70617688.27,,10236934.65,124526263.3,83900000.0,,,,,,2629021887.0,11735930.35,2733503185.0,39363259.91,16398734.08,1583036595.0,,,,,383489474.3,2469375535.0,332950425.4,93723596.47,,274611790.9,214000000000.0,,2006976744.0,,,,3052688269.0,,431750000.0
1984,,1066247744.0,,,2527749815.0,,4925319433.0,949715291.7,,29938434.04,2407447484.0,21237787.7,26968328.69,244337571.5,,,,,3256125.0,144680785.7,2013151758.0,97366249.74,,26109660.57,,7349795764.0,1807905757.0,1462262953.0,,70164798.82,127243641.8,53403541.41,49423627.5,889730898.6,0.0,,,,20124939008.0,31133068.12,1259583261.0,139000000.0,929290821.3,193000000.0,3742137511.0,,4851949869.0,,423019323.7,826070181.3,15601330.13,20212344345.0,80328270.29,22732895544.0,,44624487.03,,846805.02,6465128.712,,1994286405.0,,207480000.0,20740845.14,81000000.0,,,641103030.3,2002310077.0,6956682449.0,284275226.2,9926303622.0,,0.0,4214300331.0,8296144788.0,25153444.25,457778991.6,12225078098.0,,175004683.0,,,4759446931.0,1465909168.0,,474574917.6,24950000.0,,55750799.98,12285803.37,,38661575.09,,512454401.2,,55059872.19,1155945373.0,,25402957.27,188720829.3,,,136654509.1,,18839590.2,1273659777.0,,,10632625.18,1210916250.0,,3977294580.0,1554623805.0,29211271.37,530331804.6,1580789642.0,2114435830.0,,666310916.2,513453143.1,,2313670081.0,,,628464842.1,172997512.4,,874862637.4,731196135.4,,25460676.62,22672050990.0,355384615.4,65136844.13,,9920516.345,235932384.3,89200000.0,,,,,,2668524384.0,9116913.399,3394904459.0,40049707.41,15692619.64,1698837534.0,,,,,249474468.8,2190052307.0,293025202.4,75215039.12,,221851277.3,231000000000.0,,1325415047.0,,,,2770152107.0,81624098.96,360650000.0
1985,,1146467010.0,,,2027221261.0,,4386859326.0,1036872489.0,,32220298.12,2428223977.0,19810222.52,27106616.84,224948007.1,,,,,3263000.0,131208000.2,2687049984.0,101752153.3,,20997913.35,,7460563318.0,1966928897.0,1137635211.0,,69565043.19,116190293.9,40371344.17,55646692.47,716735061.0,0.0,,30737332.91,,19921872405.0,31391900.79,1259295610.0,61042019.4,953299653.9,284000000.0,4203565423.0,,5077574145.0,,429444444.4,911349660.9,14008928.96,20780557604.0,95489724.28,23281158966.0,,63162776.66,,1244263.419,4652567.483,,1927083076.0,,224420000.0,38971271.33,94000000.0,,,1025550984.0,1923319347.0,7567024020.0,301495819.0,10706415945.0,,0.0,4004517114.0,8253390533.0,18714379.26,501742160.3,13087751954.0,,145781732.1,,,4883795775.0,1379869860.0,,227203508.6,25150000.0,,188947302.5,10667797.39,,38112966.56,,692472049.7,,50869844.15,1241863652.0,,29826627.16,196758644.7,,,148214364.3,41058571.71,19811238.44,1076905728.0,,,10877815.44,1091662993.0,,3884181822.0,1796625192.0,30532050.16,529191398.5,1617713053.0,2143969262.0,,666976464.5,609330746.5,34289370.3,2140789170.0,,,653587081.2,158363306.1,,1528873626.0,2050007584.0,,27250728.43,17656965219.0,205293356.8,64966400.53,,6281702.97,250433594.3,44300000.0,,,,,,2795295633.0,6646662.948,3510318471.0,37839750.88,18879809.82,1629594718.0,,,,,215938722.3,2365977436.0,345976202.3,104818309.0,,203645853.9,258000000000.0,,820000000.0,,,,2117406345.0,53190811.69,309300000.0
1986,,1156494418.0,,,2449545721.0,,4606710028.0,1475426089.0,,34607737.52,3404311038.0,26277338.54,51180170.14,248796417.2,,,,,,92869207.22,2758186568.0,110162485.9,,34310908.18,,7780136740.0,2565428146.0,1114393822.0,,96559112.46,145411861.2,67436312.94,,679498200.9,0.0,,48729244.32,,27690811161.0,30604149.2,1647882398.0,82290924.24,1127103217.0,207000000.0,4727136104.0,,6270618789.0,,439202898.6,1223271001.0,14591259.37,28454938061.0,136006884.1,27216844988.0,,51650922.76,,1046935.943,6128820.138,,1998816951.0,,140853333.3,27829660.94,105500000.0,,,765838789.8,1734616704.0,9539363086.0,409081178.2,11741433342.0,,0.0,4386224325.0,11941809156.0,23522088.13,625775075.3,19457334441.0,,181255662.3,,,5325292074.0,1295617612.0,,148293323.7,24350000.0,,172743269.3,13369627.53,,53459034.31,,728545632.7,,50566283.23,817296611.7,,37539055.06,231843369.6,,,170669991.0,42460504.2,24743830.16,894074625.0,,,14412109.52,516893509.3,,5351016847.0,2168162775.0,31053048.07,691134040.0,1305689797.0,2282625019.0,,867538985.5,593798594.1,37450561.76,2173578189.0,,,935754339.7,191435349.3,,,2307873265.0,,34889469.11,,260000000.0,85476428.36,,7227148.725,163311245.6,34900000.0,,,,,,3577484916.0,7341260.29,3678980892.0,48800771.57,30011030.71,1635667271.0,,,,,206793454.6,2769409588.0,260704018.6,131071428.6,,242349802.6,281000000000.0,,1004536497.0,,,,2497888430.0,61629720.93,342200000.0
1987,,1487398890.0,,,2485659656.0,,5057135655.0,1737112605.0,,30784856.43,4162992929.0,35602937.41,50712557.85,288311839.7,,,,,,103362387.2,4323674770.0,104464429.9,,73826342.81,,8694447168.0,3020406521.0,1166781370.0,,122780223.4,163128000.9,28297227.67,100513414.3,721331206.4,0.0,,199500731.1,,34135226422.0,30817967.49,2141274092.0,59327500.29,1196971384.0,207000000.0,4805707420.0,,7921508651.0,,476618357.5,1462231547.0,25131445.66,34858734928.0,,31231666522.0,,43338474.86,,1392344.227,3883662.224,,2399225050.0,,124028000.0,10619291.23,122500000.0,,,823921397.5,1347598625.0,10877406164.0,435378990.4,15263376570.0,,0.0,5995553855.0,15653065895.0,25325014.99,647050307.4,23642290700.0,,249810082.3,,,6040845305.0,1336740077.0,,36999768.47,22250000.0,,226699541.9,18111226.26,,73150597.31,,815386106.1,,36662411.21,813391574.4,,44254118.46,203653743.5,,,83582418.11,43720551.23,21643561.49,1334714483.0,,,13662211.31,201691218.2,,6542917225.0,2753415610.0,33928833.32,925756538.6,1139141743.0,2500172426.0,103800000.0,1455232303.0,652382133.2,42383569.1,1765484773.0,,,1130608394.0,116922830.9,,865412087.9,2272446246.0,,36093359.48,14460266667.0,310333333.3,99871230.5,,4585444.665,176891743.8,28500000.0,,,,,,4469563626.0,8349582.275,3650191083.0,34271986.48,43412292.0,1698687546.0,,,,,194409783.5,2889593497.0,161608082.1,130971749.2,,223924938.6,288000000000.0,,765517241.4,1315597882.0,,,3595968625.0,66915490.04,392600000.0
1988,,1469382980.0,,,2696341658.0,,5836347868.0,1713954577.0,,34255493.43,4097149308.0,36931589.27,57186887.27,331995586.6,,,,,,92916951.67,5874167753.0,178392184.5,,93747094.76,,9897335684.0,3276156632.0,999951022.8,,128102253.5,154370685.7,214939929.1,,862374404.2,0.0,,243815864.4,,35096843456.0,31059919.76,2320423440.0,47296368.76,1028611425.0,198000000.0,4453565066.0,,8900414227.0,,614855072.5,1704330620.0,24673835.53,36104962946.0,,34304125087.0,,22760424.65,,2161462.759,,,2749556829.0,,146588384.4,11020000.0,132000000.0,,1972400.0,1027508668.0,1356706413.0,11346419153.0,453486447.0,18889008563.0,,0.0,7694798541.0,17403664790.0,30932577.82,587776388.5,28216102753.0,,250942407.5,,,7732395676.0,1704123944.0,,39317743.08,25000000.0,,165486625.5,16956458.63,,86015559.6,,917269144.8,,32904438.55,981914645.6,,48011066.05,255256828.5,,,63852700.4,42983864.11,20167493.07,855741986.7,,,,271106046.5,,6728811707.0,2894745726.0,35789121.14,961838312.4,1148894668.0,2721723240.0,102900000.0,736618231.5,931561008.2,46294747.84,1783781524.0,,,1347837652.0,178435818.2,,982554945.1,2524357529.0,,36626347.16,13354666667.0,369333333.3,105288603.6,,9011475.022,178963345.2,49500000.0,,,,,,4917620754.0,8720150.255,3722802548.0,77892079.18,43089092.42,1809003357.0,,,,,232920340.8,2663901290.0,124833697.7,140904123.0,,259967029.9,293000000000.0,,1096551724.0,1305814502.0,,,4263086823.0,86740656.33,407050000.0
1989,,1948559396.0,,,1440922190.0,,6300015815.0,1623488055.0,,37903281.72,3880733006.0,28525930.38,66816506.17,378796135.2,2071428571.0,,,,4355375.0,101690872.4,8761486966.0,186129028.9,,102798415.8,,10747134689.0,3082038963.0,988934423.2,11403453020.0,129676998.7,146869357.5,67494749.1,,865205662.8,0.0,,244995663.3,,33604161248.0,31088053.75,2183667160.0,53517350.16,854300945.3,189000000.0,3516344801.0,,9302930296.0,,781521739.1,1766586166.0,29083211.42,35317062940.0,,33498698405.0,,22626966.33,,2722988.351,4434725.155,,2560254614.0,,151627061.3,6023830.213,138000000.0,,2231550.0,812646128.2,1409556738.0,10589796925.0,434222056.0,16301812932.0,,0.0,6270727555.0,17675486539.0,40933809.6,382891036.2,27966353542.0,,228606149.0,,,9468974884.0,2076390756.0,,,,,125682787.2,22610459.53,,75962325.96,,990555090.2,,30247467.94,1153375828.0,,46080349.08,550194633.8,,,79069105.59,38879724.51,22781135.85,1019255475.0,,,,170705511.3,,6399237699.0,2932580201.0,36331136.35,959602906.4,1171521456.0,2580142638.0,101900000.0,862654199.4,954928761.0,53074242.22,1493906252.0,,,1456535413.0,98142356.71,,848461538.5,2572110229.0,,41622478.13,12749866667.0,,99602517.81,,14394912.13,213029679.7,8560000.0,,,,,,5032977192.0,8731526.53,1483652561.0,56424917.24,41861019.16,1939693409.0,,,,,234062029.6,3373741563.0,105316752.3,139821239.7,,297821236.4,304000000000.0,,1196251553.0,458562483.9,,,4181886467.0,167587250.3,408600000.0
1990,,1751153152.0,,,2050907629.0,,6704213698.0,1972701682.0,,39602347.38,4644324241.0,32817291.98,84465502.36,373023439.0,794520547.9,,,,4768750.0,137065127.5,9236296955.0,231168587.6,,156250839.8,,11414631847.0,4056408189.0,1031475584.0,10085081567.0,143973702.1,180577745.9,45933813.55,,889979074.5,0.0,,411409063.3,,42318768301.0,31116187.73,2649889473.0,47798904.44,904269155.2,202000000.0,2260645161.0,,11695038645.0,,785048309.2,2141300984.0,30542031.59,42589868779.0,,38943795645.0,,27612553.5,,3464911.112,,,3193376484.0,,132196105.0,3589328.49,67120949.03,,2670400.0,847389246.9,1613975396.0,10537035450.0,594006010.4,16474401698.0,,0.0,7375654517.0,20734625579.0,38609944.56,322429005.4,28800451682.0,,246456438.6,,29090909.09,10110714871.0,8961536461.0,,214361038.7,,,187023405.7,24165932.32,,96691368.64,,1069720492.0,,37948124.18,1327241698.0,,52155069.51,814025583.1,,,84598999.67,40181617.44,24312172.03,1125007856.0,,,,277297783.5,1142475980.0,7420849636.0,3394869435.0,37929191.13,1057749672.0,1447919376.0,2810101624.0,73100000.0,777066944.8,951481870.0,68691099.48,1540736842.0,,,1875087897.0,112234255.7,,790796703.3,1739025771.0,,95132735.43,16355466667.0,1177777778.0,118215709.0,,12387253.54,163886690.4,,,,,,,6169504240.0,14223211.66,1641781737.0,34341542.25,50748351.79,2214017705.0,,,,,247855881.5,5315413395.0,87154458.21,107006214.2,,328351062.0,306000000000.0,,737870454.7,511970136.4,,807070715.5,4364458204.0,139324047.3,416300000.0
1991,,1031247788.0,,,2858778842.0,,7023509067.0,1994055546.0,,42751758.83,4624500746.0,,69505542.22,381720110.1,232176386.6,,,,4732875.0,143643960.1,6694665295.0,245434285.5,,172269188.2,21598187.92,11338503299.0,4016764413.0,1038039494.0,9953641758.0,144168701.9,178198343.2,43891987.21,,911467589.2,0.0,,418387368.7,,39516328623.0,31774522.99,2671946671.0,33894298.95,565098062.6,209000000.0,1345757343.0,,11680263754.0,,529033816.4,2200991549.0,32482582.88,42702599011.0,,42074283749.0,,41427184.18,71764178.4,3996271.673,,,3146899035.0,,119310860.5,2031374.373,47398089.41,,2623227.387,722549153.4,1697029205.0,8622473881.0,624932658.1,17549594830.0,,0.0,10548894781.0,21585706772.0,31891976.66,433271745.1,32785415754.0,,191908506.3,,43294683.66,10956524348.0,12924377966.0,,229469731.0,25000000.0,,277389023.8,22308171.45,,107736089.1,,1148445710.0,,34707087.44,1599507028.0,,,942677085.2,,110838314.6,71803523.25,39440703.49,23704121.2,1571959986.0,144767719.8,,,243705781.0,67668345.5,7246192325.0,3287551636.0,35431485.71,989033810.0,1254811443.0,3067123794.0,78600000.0,697734627.8,913219741.9,52642141.66,1721995821.0,,,2115383815.0,197613496.8,,895631868.1,1377194085.0,,105333802.1,16355466667.0,1365798115.0,110014994.3,,23179749.72,145127188.6,,,,,,,6219460369.0,16006837.31,2893808463.0,,45904568.12,2598337174.0,,,,,260431030.7,5670666520.0,108141651.9,73561599.98,,268628014.6,280000000000.0,,983721953.4,427617814.1,,1028217917.0,3874415135.0,86247306.22,376050000.0
1992,,794138821.2,31559657.48,,3254455192.0,,6882091580.0,2139925322.0,11070110.7,38986476.43,4131298112.0,,71116618.56,427723625.0,255770911.5,,,,5292125.0,141441910.3,4993804467.0,251692787.5,,177986045.6,23185438.17,10788803124.0,4138043834.0,1168858391.0,12420300875.0,156797334.3,183796639.1,85527294.36,125617699.1,1102357227.0,0.0,,630127106.0,,41965836693.0,33625739.22,2837745377.0,63127240.84,1053301643.0,211000000.0,1415819974.0,,12250195430.0,,255343443.4,2075955550.0,30539125.34,45123086054.0,,40774938835.0,,41663996.04,55654040.29,3501687.892,,,3623052915.0,,153753024.3,3625349.994,,782003661.3,1743605.937,812017967.2,1887635966.0,8083231410.0,674035044.5,19732558015.0,,0.0,8262053674.0,22177090390.0,47192327.63,367745484.8,35999123576.0,,156036602.0,,62293735.89,11614665196.0,6316012045.0,102292611.3,442786331.1,22650000.0,,326765473.6,24237292.3,,123217456.2,,1228526553.0,,23102633.36,2000064622.0,,,1370457677.0,,33041891.2,59605412.17,39378674.16,25238116.38,1766520896.0,124561274.3,,,173657679.3,47200000.0,7904561273.0,3803684930.0,37607537.89,870398917.2,1517165150.0,3388776373.0,78800000.0,904617805.0,1078843704.0,58569676.66,1881935067.0,,,2532649406.0,169556285.2,,,831620409.6,,88570170.0,15360266667.0,183718440.7,109772868.1,,26661754.52,134193736.7,,,,,,281422738.5,6418628291.0,20976434.16,2976570156.0,35324074.77,49113686.85,2961769836.0,1037058.642,,,,289677115.2,6157947273.0,96907036.42,52331345.97,,366965197.8,305000000000.0,,992932485.0,332970309.4,,1306900026.0,3677406461.0,97756279.98,296350000.0
1993,,1774397877.0,39289843.43,,3368550452.0,9829763.866,6733829290.0,2115115267.0,77519379.84,36267402.59,3746042851.0,,60526975.63,471044672.3,282674243.3,,,,6130375.0,109897118.0,7099899155.0,233941291.9,,185671482.9,19144450.37,10268822622.0,3611212626.0,1291053676.0,12577165930.0,148635238.4,168175220.6,469173805.5,109477580.1,1529432893.0,0.0,,268277271.6,815585466.9,37215052110.0,31065546.56,2682011246.0,95993941.21,1276911083.0,276000000.0,1526165392.0,107737649.2,10041511353.0,13146559.88,163850000.0,1615424809.0,32041095.62,42590872342.0,,34085881363.0,,41004328.58,43956503.99,2556388.668,,,3364413330.0,,144445075.4,4436526.474,40592869.13,1168936759.0,1649639.306,735860385.6,1933304585.0,8253542581.0,597723765.6,1448177703.0,,0.0,8758471677.0,18242013901.0,44542579.54,391137488.4,41353936222.0,,105704527.3,,44626255.11,12377424873.0,2980065532.0,107643979.1,452979280.6,30450000.0,,354785171.2,22140684.39,20769763.77,108089199.8,17691507.97,1251786538.0,,37830790.82,2327305641.0,,44497338.99,2061809624.0,,14057102.96,59366482.2,30155786.96,25728062.72,1923398172.0,70155520.33,,,289231103.9,40210589.62,7054868962.0,3175583193.0,37041837.42,866788074.6,1439921977.0,3308760745.0,95200000.0,956586465.0,1173017500.0,68596992.16,2123378416.0,,,2192208142.0,157930499.3,,,722451519.7,7766720078.0,89436136.36,16451200000.0,257981093.9,119937986.2,,23339131.11,116470035.6,,,,,266899036.6,230303671.6,5011158320.0,23724347.71,1426095238.0,39200036.73,50147794.73,3156299863.0,23498175.22,,,22644876.75,276167134.9,7075086940.0,58725701.62,62636650.43,152233866.5,418919639.0,298000000000.0,,1287954761.0,297716380.0,,1535457656.0,3254313379.0,51128294.49,249800000.0
1994,,594991178.7,49649504.93,,3754724687.0,,7459696582.0,2227560550.0,43942747.06,41909745.03,3944101813.0,,30259093.49,547417522.2,241993434.8,,,,7899375.0,134595240.4,10591499118.0,261876080.2,,170433762.3,10689745.23,9577377640.0,3899275421.0,1466048832.0,10050586559.0,84071649.21,94517340.44,,,2005122888.0,0.0,,298469126.9,938252776.6,36330284517.0,30711058.34,2718790042.0,100956679.7,1334911648.0,291000000.0,1714409786.0,80198311.21,10092671257.0,25135735.38,148691674.3,1756338984.0,33665273.34,44392512323.0,,34493524143.0,,37823250.83,45871747.51,2316899.696,2016728.765,2379301.339,3587244914.0,,153011545.4,5485552.101,,1625222365.0,1599966.755,757131989.3,2239731575.0,8880551226.0,633699379.1,1703171536.0,,0.0,8780366219.0,18062459082.0,34218503.95,407863026.7,45285594083.0,106926893.0,117331482.6,12086953.61,107258619.0,13519265763.0,3296055513.0,116105380.4,637473438.6,39300000.0,,437032405.1,25853328.83,21062271.38,126000012.1,33900348.04,1365250019.0,,27580945.67,2888815805.0,,29898866.18,2801966892.0,,16393641.22,72864691.92,29488165.08,17060803.08,2120597807.0,56958995.16,,17471024.22,319694489.9,35401494.6,7137373801.0,3403291213.0,39252998.63,979531817.0,1520091027.0,3320617929.0,101000000.0,1111161731.0,1392199022.0,83255878.34,2251923178.0,,,2173634730.0,161100272.3,,,936686222.5,13547871733.0,40510575.39,14279733333.0,226167004.5,66146738.59,,26495551.69,109334519.6,,,,,299993419.1,237949504.1,5154504230.0,25804044.16,1636299776.0,22153979.16,25396024.89,3611133201.0,14182891.53,79583333.33,,24202817.59,297068854.7,5293173966.0,58375569.77,104127847.9,919044682.1,450443306.0,288000000000.0,86929824.56,939683231.4,431345012.2,,2353269332.0,3478582291.0,62869469.99,247900000.0
1995,,233843714.9,50907521.78,,3801950488.0,52228583.82,7665878446.0,2557834494.0,66159968.91,42108929.88,4449014835.0,,36862814.24,620095155.9,311147105.6,,,179081676.9,8052875.0,140760862.8,14318919608.0,285738475.2,,165873977.8,13014176.16,9176903908.0,4645360982.0,1827997369.0,12606229599.0,,113575532.7,,,2619338187.0,0.0,,298833385.5,1065352459.0,41158705095.0,29608206.12,3117966146.0,84449968.38,1234655192.0,475000000.0,1948876986.0,124996349.9,11439906271.0,36343487.58,122460147.5,1908986807.0,34700248.16,47768110000.0,,34247823782.0,,49054322.26,,2886551.708,2211919.911,3447875.179,4179913247.0,,158348657.5,5691560.614,,2060388930.0,2478871.189,612184817.1,2478753541.0,9754464630.0,702039703.1,2501544190.0,,0.0,8976693112.0,17185853004.0,35298829.61,299838515.5,49961673237.0,177686628.4,149096438.3,26712568.96,123101153.5,16085095679.0,3692435533.0,103704532.2,746264054.1,,,763663963.7,34373285.47,30453612.5,142256814.9,43560331.06,1437898701.0,13345789.4,27170664.12,1712924668.0,,40468959.11,3932079181.0,,21281148.79,33465088.27,31987855.25,11047717.5,2444098387.0,68236520.19,,18431407.12,639406630.6,35119851.46,8011539559.0,3508040839.0,39766584.51,1146415728.0,1513849155.0,3665932427.0,96600000.0,1413463629.0,1700402497.0,56405488.19,2719362634.0,,,2670121572.0,206926409.3,,,983140541.4,12741629470.0,56449336.72,13200266667.0,138756425.7,80915880.66,,25023304.59,111636298.9,,,,,629622682.6,334655022.9,5729770498.0,28769619.72,957899818.9,20034138.17,30852572.78,3849025896.0,5803400.646,135612612.6,,,342902458.4,6606245815.0,85513656.09,127002622.5,1046793431.0,523862025.5,279000000000.0,112678421.5,1198810237.0,,,805892377.9,3292446562.0,55265536.34,262900000.0
1996,,159741933.5,45713356.11,,3379138770.0,52410268.55,8202776517.0,2457903049.0,71606841.24,50893980.78,4241865968.0,,37141874.14,638958844.8,213616356.3,,,182805614.6,7965875.0,146963017.8,14073226545.0,328359479.2,,140560134.8,12196218.57,8615884471.0,4239447901.0,1904105834.0,14563240390.0,102660140.1,116936303.6,89269879.98,,4318552316.0,0.0,,448075909.3,1123923831.0,38989886649.0,24527208.38,3086224945.0,107001292.2,1452431008.0,419000000.0,2115742979.0,152271808.6,11294316855.0,41436607.71,126454733.2,2021797095.0,32851136.61,46403438584.0,,34490949485.0,67706683.56,44417812.62,,3929706.231,1897743.657,,4613167577.0,,141370462.9,5558340.16,,1938698897.0,,585271901.8,2874845238.0,9904672736.0,750987245.8,3550986964.0,,0.0,9601957420.0,20793128832.0,41791263.91,417489421.7,44047104680.0,241771205.9,170804816.3,28276956.35,113563610.9,16408665267.0,3241385529.0,78445466.01,735631013.6,,,767105591.7,28347308.31,42260000.0,141495421.6,38154934.56,1447128689.0,15354611.16,49442905.51,2063965155.0,130636725.9,39683160.27,4675441102.0,,21608196.89,36037790.98,37887510.75,20152203.02,2420963934.0,66463535.19,,17398035.78,701412878.6,31533400.51,7829004728.0,3537003416.0,39547026.04,1238271987.0,1437191157.0,3547799671.0,101200000.0,1396469289.0,1879303176.0,78744873.28,3083416787.0,,,2600849533.0,202012224.8,,,874451238.9,15826340652.0,73658822.76,13340000000.0,106332797.7,79774881.15,,18592815.28,110830676.2,,,,,641559871.1,329972648.3,6203436943.0,26486561.92,995089040.9,24826410.61,,3938047248.0,13458544.84,48549386.5,,,397469509.2,7512090796.0,101038489.5,135393564.5,1464905136.0,575652014.7,271000000000.0,172211545.7,733197556.0,,,416008632.4,2591787131.0,37835913.57,291650000.0
1997,,456780475.0,29825492.0,3335766741.0,3340670335.0,64062121.19,7936884917.0,2164802343.0,92086691.97,61870123.83,3684095389.0,,38549246.23,681915124.0,244369396.2,,,249384139.4,9395000.0,180200446.9,13934266552.0,369070790.2,,160507675.1,,7945140183.0,3498218851.0,2120702608.0,16104915232.0,93525611.26,118711118.8,83825040.92,,2988711261.0,0.0,,534141188.7,988324331.8,33217573925.0,26552855.32,2804317083.0,150664189.8,1752395278.0,499000000.0,2267650314.0,92756319.41,9865892241.0,53031652.18,225417105.1,1947002590.0,30962540.18,41308251985.0,,35674878363.0,44007707.13,45483310.22,44370189.81,4176388.698,1817811.122,,4573516492.0,,132112832.6,,,1797184681.0,,695972460.9,3231358571.0,11464883390.0,765305513.3,4642384616.0,,0.0,9693753398.0,20156102258.0,54854608.88,444287729.2,40634840608.0,236752278.4,175834896.9,31158797.7,103419601.2,14848484530.0,2454268845.0,67064556.58,678164279.5,,1251990817.0,698792770.9,28700335.94,75611000.0,134075768.0,37988313.15,1400949501.0,17410750.98,52544736.69,2394152398.0,83254172.21,40262546.07,4780529108.0,,18692594.36,42014622.82,41599441.57,26407487.14,2089087477.0,83659580.38,,17304328.31,818784525.3,30270700.5,6839136799.0,3253032488.0,42587851.99,1180888907.0,1482054616.0,3320238863.0,118000000.0,1178753608.0,1576447115.0,79556597.15,3192276377.0,,,2388687811.0,167982106.9,,,1074785782.0,17577353181.0,77272576.53,18126666667.0,97731859.32,70800402.28,,9490749.703,112211743.8,,914364967.9,,,499529506.7,290785271.8,5203218383.0,25662115.12,1046927961.0,16619008.38,,3264802658.0,19050989.36,106190591.1,,,358166577.8,7791986304.0,118603807.7,139615977.7,2068583952.0,575206289.5,276000000000.0,217747190.7,1541033864.0,,,397073042.4,2414137710.0,43362495.25,311400000.0
1998,,170278292.6,33638047.44,4010347175.0,3398699350.0,66757573.06,7107542891.0,2159796003.0,107262858.6,58736036.23,3664288413.0,,39494738.56,701585600.4,320389011.3,,,227586087.3,,228677000.4,14357357047.0,293977055.4,,181051047.4,,7748607984.0,3494250971.0,2112373123.0,17527989869.0,,137245911.5,26629667.19,,3389806738.0,0.0,,483748645.1,1166099773.0,33146457057.0,26704778.84,2846065338.0,159053096.3,1910962052.0,549000000.0,2372048406.0,263001685.7,10333417234.0,59919847.48,458549925.4,1959708814.0,22598926.93,40041139680.0,,36866288852.0,41084456.98,57453085.66,45034483.32,4049572.023,2900235.951,,4824257169.0,,139804367.7,,,1427264827.0,,618464380.0,972702125.1,11920610818.0,742402153.2,5479362942.0,,0.0,9145784898.0,20825125352.0,47640218.88,496473906.9,37849012643.0,242646223.1,171964013.3,26092304.3,83323986.09,10457957529.0,2282153592.0,33350210.56,693871897.5,,1443621758.0,733435634.7,27807021.35,138175000.0,143139739.1,42180166.5,1444959716.0,10613141.68,50446576.25,2480943604.0,78991291.13,41020286.4,5873097951.0,,19920839.93,49264817.34,25610687.83,14474120.37,1158657313.0,78912428.46,,22035691.04,1149684730.0,26271274.53,6836084823.0,3324939365.0,42273075.89,969356349.5,1318205462.0,3218881738.0,104000000.0,1141808874.0,1225561281.0,49720532.99,3491022616.0,,,2335597096.0,139262988.0,,,1254227893.0,7955730401.0,87091837.06,20861600000.0,259957570.1,75090854.85,,,110830676.2,,642122263.4,,,397592215.7,301139822.2,5132285182.0,25731330.54,1096039533.0,16103004.99,,2110239752.0,22613230.32,87510040.16,,,365849374.7,8781048158.0,134276958.1,154712531.5,1405161785.0,573248407.6,274000000000.0,,1450963992.0,,,384502730.3,1905656009.0,,306000000.0
1999,,1066588789.0,42784205.21,4233083730.0,3461730865.0,68234148.57,7770250653.0,2124379546.0,120262174.0,50571188.26,3598447520.0,17843134.39,41741175.48,737412573.6,357224539.6,,,165903848.9,,176744242.1,9866973919.0,258413177.9,,169578756.2,,8210778540.0,3146822887.0,2043134812.0,21027341242.0,,144704636.5,149277860.3,,3247296766.0,0.0,,289970367.0,1205931870.0,32604005638.0,26779052.56,2784881254.0,175000467.8,1826496570.0,296000000.0,2447978794.0,272856734.6,11113722490.0,73800541.32,703704869.5,1653905119.0,23811699.72,38897240331.0,,36453353008.0,25882678.36,59277760.9,55211186.39,3519056.437,,,5012285642.0,,123754165.2,,,1035949008.0,,702942491.1,1135147005.0,13895562461.0,741508607.8,6650285144.0,,0.0,8645271101.0,21016456910.0,45131071.75,511988716.5,43122898505.0,143905357.1,151917777.4,23133179.47,88172003.48,12095186824.0,2286352512.0,15382947.39,829663624.8,,1153487088.0,631014150.1,34078186.69,106450000.0,140758789.2,56568626.39,1207516610.0,5990984.994,45036442.92,2908141919.0,66236920.45,43852596.8,6950081056.0,,18021861.88,56516191.65,31959678.11,14402979.49,1663289474.0,105765957.2,,23550468.65,491671368.6,26927929.68,7026433290.0,3309198286.0,47484957.37,970306042.0,1340442133.0,3080764514.0,111600000.0,992217726.3,1341016654.0,35678026.43,3226555351.0,,,2406493740.0,116553254.9,,,955337577.0,6469035211.0,80852363.58,18320000000.0,429617897.4,78285006.15,,,114743701.1,,737469450.8,,,327169170.9,274841827.8,5148727432.0,25853264.11,1127632857.0,20951796.25,,2056847122.0,15126152.26,111923076.9,,,357013395.4,9951788874.0,128497943.6,159704570.3,941788284.1,574285890.7,281000000000.0,250071736.0,1408064716.0,,,395252957.3,1738036625.0,56113432.89,263400000.0
2000,,583621333.6,45362503.39,5875833901.0,3266633317.0,68052142.07,7273760313.0,1925557398.0,119575651.7,42321552.22,3190805233.0,14496275.16,36658539.05,740798160.0,351343204.9,,,140326204.7,7116125.0,173245422.5,11344032535.0,244205202.0,,184718394.6,,8299385231.0,2800146846.0,2103460610.0,22929764607.0,,123034343.9,132883821.7,,3027922793.0,0.0,,281160374.3,1157294085.0,28149990787.0,26025061.75,2392510831.0,246810843.7,1881163649.0,266000000.0,2627698334.0,230670129.9,10273779252.0,78313308.56,617541613.6,1558135250.0,32039537.35,33814262023.0,91295212.2,35254814799.0,18824291.43,50882608.24,45967931.21,3323532.172,9531360.608,,4564522446.0,,157848092.8,12585649.29,52462396.89,659775033.3,,715857664.8,1129542840.0,14287514241.0,694674774.3,8327053824.0,,0.0,9407761463.0,19878720932.0,43566232.49,529337094.5,45509673827.0,143527541.1,165584735.2,25794155.81,81025841.31,13801107024.0,2697075596.0,13717664.6,930016583.7,,1085534665.0,822127365.6,30555503.52,140400000.0,128192371.5,69990683.36,859151483.2,5090797.96,47210934.61,3323124172.0,69828947.91,43681247.68,9030564409.0,,24265559.55,55361458.44,37878312.26,11727501.44,1533157895.0,92397796.49,,20084946.68,368644109.5,30825265.68,5971807629.0,2922343510.0,51358135.31,858414919.5,1577243173.0,2973072722.0,0.0,912005730.7,1303077685.0,33606981.63,3146106713.0,,,2204256495.0,110248167.2,,,935569610.3,9228204144.0,61329857.12,19964266667.0,587267572.3,62361652.64,,23310804.35,110370320.3,,337080608.4,,,342322768.9,222391556.8,4789440137.0,24471060.53,897044908.7,21349034.24,,1881009454.0,10353281.16,,,,332389762.7,9993730197.0,135055952.6,141303025.9,1136716646.0,555968792.4,302000000000.0,115375384.6,1788322080.0,,,473664032.5,1891725013.0,,346300000.0
2001,,404299140.0,53232045.16,5797957794.0,3183591796.0,66247626.46,7043145895.0,1788798311.0,131963660.1,53230373.11,3036035472.0,13112535.62,36832965.23,705481695.2,406003542.8,,,177697841.7,7454662.5,184397571.0,10930231568.0,217667939.2,,210322093.6,,8375571425.0,2763655325.0,1893098224.0,27875387284.0,,124301708.4,,54445943.53,3264438192.0,0.0,,327627160.3,1182519922.0,27425257940.0,26048131.62,2525225825.0,305900328.0,2091627274.0,384000000.0,2834256230.0,166550245.4,10222074075.0,93818539.9,349808276.5,1479270879.0,32811655.82,33276659717.0,90036137.23,35331927360.0,23829967.87,32352140.5,87718398.82,2454230.2,6183163.515,,4428103552.0,,196765577.5,14371052.9,62951976.58,629464103.8,,845055673.8,919022697.8,14600642346.0,767778364.4,10378791766.0,,0.0,9607416508.0,19519381482.0,46374382.29,528926645.6,40757967234.0,221486206.5,195365005.5,22212067.21,70846940.89,12941850828.0,2685735278.0,12574570.78,958540630.2,,819747993.6,675016502.0,23390729.43,166875000.0,160284919.2,86966741.1,1470317615.0,5961865.823,65037565.45,3540226539.0,226303002.3,44881650.23,9464417217.0,,23124715.31,50619215.98,51852489.35,12681914.7,1934473684.0,96757182.45,,24828146.93,570632287.8,28193450.44,6200391943.0,2965973987.0,64701738.38,796636889.1,1819895969.0,2842046790.0,0.0,904235449.1,1122103992.0,25230765.6,3630645595.0,,,2324811411.0,91298893.93,,,985657655.7,11683151345.0,56885903.13,21026666667.0,388091317.4,68891286.82,,29911134.61,150651459.1,,494069226.5,,,393996598.3,271488790.4,4128046006.0,19665055.21,1022526578.0,26192330.83,,1724799637.0,12468225.56,,,13945440.72,335647906.8,7216051045.0,150728196.3,136157342.5,1088575173.0,523008311.4,313000000000.0,59760610.47,1911400137.0,,,540101498.8,1802262236.0,,286700000.0
2002,,438686245.4,58649352.5,5354118448.0,1114172483.0,64106405.65,7946766202.0,1881746741.0,139894091.9,44910067.05,3147146017.0,26000447.64,42468449.96,681816161.7,455950466.5,,241025517.6,204364237.4,7829937.5,160437935.8,9664561903.0,226182431.5,,223549258.8,10681962.96,8495399281.0,2882696762.0,1779553138.0,32137735649.0,,145626610.5,,70704230.2,3347522602.0,0.0,,242483491.0,1494390397.0,29333207849.0,33250994.54,2694082493.0,271663317.2,2100602521.0,505000000.0,2902768425.0,150764425.2,10270839019.0,122069530.7,288932333.5,1611406522.0,30914304.27,36403933933.0,94693165.45,39659529123.0,33975807.04,36975481.34,98084865.17,2259285.664,6363093.769,,4734177215.0,,158368119.3,16652243.46,63602176.06,733680739.1,,1079154824.0,1369857129.0,14749667252.0,811255940.9,3243891033.0,,0.0,10090890495.0,21610059762.0,56898147.1,521861777.2,39333708170.0,245956719.4,213894508.0,25933378.39,65182716.1,14101703315.0,2821521878.0,11435617.47,907462686.6,,452513614.8,571657950.2,19559896.4,181481441.2,153404545.7,147224840.2,1474874326.0,6978372.204,57743396.83,3479509029.0,106309576.7,49355225.63,11000356816.0,,25282128.41,53509586.96,36281137.41,14815169.79,2237894737.0,87992258.58,,20660327.01,896913201.4,34831910.07,6728153969.0,4065868548.0,85405885.72,865788853.0,1868465540.0,3273401893.0,0.0,839613251.8,1199121767.0,17020861.47,3776173214.0,,,2602230483.0,69892741.29,,760989011.0,1056136062.0,13943825063.0,51118614.12,18501866667.0,484607263.0,74361395.03,,27133961.88,161700000.0,,678511699.8,,,440059286.0,326959522.8,4354573015.0,18338440.52,1102912157.0,34290403.85,,1812993336.0,25577668.2,,,19492116.74,345424236.7,9050377182.0,140753561.8,142191594.1,1176355738.0,344263066.3,357000000000.0,45914432.99,1071363969.0,,,737366548.0,1766082898.0,,677000000.0
2003,,670021164.4,76142881.76,5834717495.0,1374873734.0,76587998.89,9926649415.0,2381962769.0,176552162.3,43413201.31,3875697772.0,34544046.8,50757054.37,719442956.9,569054077.5,,202282838.9,231563860.4,8552225.0,173431324.8,8392905884.0,243373245.0,,301014357.8,15018926.36,9958245602.0,3270337504.0,2067983998.0,35126306608.0,213007570.5,188499655.9,78708031.88,93776668.96,3278369503.0,0.0,296933962.3,288427605.8,1885706689.0,35055088179.0,41763775.81,3199158428.0,155802495.6,2206395762.0,739000000.0,2383914898.0,181583669.0,12880532801.0,171411923.9,278673159.9,2475059743.0,37296898.08,45916973841.0,108396421.2,46942962291.0,42647402.88,53244020.29,84133949.31,1997861.937,7505161.734,,5035585542.0,,178771794.0,16345330.57,82195176.79,709399147.2,,1401561253.0,2134746704.0,16333986643.0,965199981.0,3717068450.0,,0.0,10827490776.0,26824213292.0,54845871.82,611847672.8,42486177361.0,317564315.1,245938663.8,32603112.03,67525224.43,15847047272.0,3130746413.0,11013340.9,923383084.6,,541401766.5,541695589.6,27363759.54,210822413.2,198637975.5,189144251.4,1819230070.0,8246742.537,72517018.89,3245342478.0,115827201.7,66758430.83,24189109503.0,,24333211.23,59771342.55,62449150.29,13118825.85,2881578947.0,129449089.5,,24604267.03,587461887.3,35307124.98,8356338470.0,4517514992.0,102934146.2,1132832007.0,1969310793.0,3722814794.0,0.0,891253913.4,1301286084.0,19307132.13,4150261759.0,,,3109812942.0,63511880.06,,784615384.6,1250327559.0,16973739085.0,45196268.98,18747466667.0,398110221.7,96856503.79,,28467933.59,126600000.0,,730567122.9,,,624508454.6,416906753.7,5305640404.0,31927690.93,1436210734.0,40949759.12,28831211.29,1891520588.0,34788346.39,,,33736557.0,407385561.1,10277901778.0,125254713.9,152379921.8,1427984751.0,269526777.2,415000000000.0,54133695.46,987890177.7,841930159.4,,807313244.1,2574176278.0,,194800000.0
2004,125111557.5,817533582.2,100922358.4,6816882233.0,1465809188.0,98070488.2,11995219710.0,2679282065.0,228249631.6,44872377.15,4262663513.0,41780478.34,65684242.41,770641160.3,650748201.7,,200100307.3,314314017.8,9486150.0,168881603.1,9780111585.0,199381149.3,,314038897.1,15103589.92,11336489831.0,3503819863.0,2687320866.0,40352713136.0,250811588.4,221107924.7,137637805.5,124298437.4,4056896991.0,0.0,62047619.05,338474566.3,2042085931.0,38007611456.0,37355742.99,3578832460.0,152878466.8,2802224794.0,710000000.0,2369743586.0,,15262458637.0,204968180.2,311038749.0,2892938124.0,46798811.28,53007021661.0,125121856.6,53970302831.0,70419742.78,56353842.99,81018570.1,1931395.5,,,6267468787.0,,114893349.3,22132238.74,60561786.64,730867004.5,,1532612234.0,2428947795.0,20238566527.0,1101860647.0,5243621133.0,613724869.6,0.0,11127065294.0,30261076655.0,54533132.23,586741890.0,45339809415.0,426441724.6,259807840.7,37238358.12,69218798.63,17829864143.0,3450118765.0,11496967.52,954560530.7,3182000.0,685073220.1,619305492.4,31386955.1,270841799.8,234676202.7,229353322.5,1937523822.0,9378005.953,54471710.03,3129009392.0,135256294.8,77420331.83,29853914083.0,,27749093.06,77630605.86,,21965738.58,2823157895.0,166997177.9,,31611724.73,639990066.8,32628065.16,9377114724.0,4887380337.0,130650327.9,1285163189.0,2230689207.0,4128195489.0,0.0,922046074.5,1243221348.0,24421729.44,4778627749.0,,,3719431562.0,84466986.26,,772362637.4,1530183904.0,20955413571.0,41215761.05,20910400000.0,1240766949.0,107553687.9,,22961537.04,128000000.0,,739172065.1,,,711290428.0,493153892.9,5514710385.0,42695547.31,1388544983.0,50540901.22,31719621.04,1866937328.0,45110098.94,,,75889150.48,444651416.7,10920773882.0,127567862.8,196015853.7,1685034159.0,279301971.5,465000000000.0,,1448715983.0,915089546.6,,735485127.9,3099065125.0,98349404.04,256100000.0
2005,122727193.1,1365055399.0,110140852.7,6604220558.0,1699579152.0,140738102.7,13237798499.0,2686166244.0,304521477.7,49557129.38,4228224643.0,44706029.56,73843342.16,773677668.2,699433973.1,,173304847.7,452684068.3,10710962.5,169262316.4,13588619736.0,248588079.8,,283835745.1,15396194.65,12988132964.0,3484636759.0,3100391591.0,45918881613.0,249872978.1,223084623.1,165205060.9,100916074.5,4914190182.0,0.0,78557142.86,380875028.8,2439538514.0,38054021788.0,44847260.59,3468452920.0,272200481.1,2924820167.0,954000000.0,2659439714.0,,15997724220.0,265961745.8,342066638.7,2999391049.0,43111350.29,52908769835.0,118111430.5,55151564188.0,214071430.1,64196566.4,,2985085.073,12116374.83,,7028428593.0,,104467679.9,18506566.6,62589274.81,799160901.2,,1596087843.0,2146270791.0,23072312925.0,1144978361.0,6796744965.0,1120278533.0,0.0,10919173621.0,29737642392.0,59329776.32,603667136.8,44300613330.0,591985249.8,316799485.4,39718288.7,70959071.47,22159512557.0,3509417808.0,11965988.44,962520729.7,8025000.0,690930769.3,644211825.1,33619893.92,303819006.4,243744714.7,272551115.8,2031131381.0,11960379.69,54018162.48,3621523413.0,127003654.4,86450742.04,32954262251.0,60811819.13,29797967.23,62247951.09,66659636.65,38213561.9,3120337779.0,192072120.8,,32798198.18,674208144.8,34123573.95,9566980053.0,4884904928.0,159326023.8,1389770959.0,2739011704.0,4587117425.0,0.0,1203039421.0,1372702435.0,30464707.68,5896404861.0,,,4039322489.0,77468937.97,,887500000.0,1975975151.0,27336977274.0,44996351.89,25392038601.0,1164995936.0,124403755.3,,23552130.23,132900000.0,,629500942.8,,,823313455.4,514172799.5,5518466926.0,59471673.9,1450324657.0,55491517.97,33238035.29,1984492828.0,,,8230000.0,97752858.93,468464580.0,12081156314.0,139493591.3,216667041.1,2405492582.0,347323784.9,503000000000.0,,2665390597.0,1026426801.0,,815627464.0,3566963815.0,139509353.6,131400000.0
2006,131346231.3,1970309115.0,140983900.7,7165418652.0,1847553130.0,188189116.4,14239779513.0,2640185362.0,717111853.6,44717502.04,4307895341.0,46786130.93,72632867.33,829682794.8,750992451.6,,178375570.1,631831238.1,12283037.5,179525489.2,16404867307.0,293436463.5,,272934274.8,,14809892803.0,3328973394.0,3855358069.0,55337487669.0,267360247.9,256927843.3,205102086.6,126569641.8,5326664238.0,0.0,76587443.95,387703672.0,2449963710.0,38092382653.0,49515814.11,3896730668.0,259240325.1,3093978245.0,950000000.0,2952520159.0,,17252217613.0,315179053.3,345687017.0,3128517474.0,54067168.06,54516076830.0,130237717.3,57482975674.0,404172025.9,75732607.93,,2786319.244,,,7607186182.0,,130546929.2,19176973.64,75595918.54,849431034.7,,1410071771.0,2611875117.0,23951927958.0,1190379117.0,8751474767.0,1236081013.0,0.0,11558970817.0,29633022263.0,72645523.01,701551481.0,41552592886.0,793027147.5,375807203.2,47207036.73,75881313.59,25177237741.0,3597816498.0,13410565.06,1008955224.0,3925000.0,614356296.2,791491040.7,35224579.31,351605788.8,247133192.2,367825490.4,2134594876.0,16449497.76,53914017.64,4082501468.0,126008876.7,96004895.87,,62347815.51,39189624.48,57439135.78,81906180.19,31090549.5,3266197406.0,199559185.1,,,776148058.3,37285145.13,10217765740.0,5011748967.0,157247689.5,1463950819.0,3022626788.0,4969197611.0,0.0,1291060140.0,1607271267.0,31307966.36,6619413759.0,,,4066783668.0,106557406.1,,1065741758.0,2251493425.0,34517781619.0,54557648.04,29580507343.0,1647839194.0,148555145.4,,28022458.48,142100000.0,,705062714.3,551454504.4,,911370626.8,608833753.4,5577203266.0,58520575.05,1435215692.0,222991451.4,,2441917005.0,,,17105000.0,115560463.1,497212664.0,13363298981.0,147417924.8,218533948.5,2986475248.0,392798690.7,528000000000.0,,3630088496.0,1286528867.0,,822130536.1,3506139658.0,205852231.6,161700000.0
2007,219580214.3,2032432883.0,194840309.2,8460993873.0,2296448242.0,280108688.3,17186440962.0,3499817967.0,946599792.1,46308706.22,5163979974.0,,107816728.5,953464223.6,1032154228.0,,195049685.1,746943264.0,13759075.0,221280687.8,20485758015.0,323137150.8,,306451402.7,19112519.74,17417139931.0,3524746536.0,4022478104.0,68011562228.0,323619193.5,296698917.3,205217223.0,168079588.2,6775762767.0,0.0,83365638.77,405176368.5,2707677752.0,42551851943.0,34518711.91,4175652589.0,274775680.8,3945815125.0,1310000000.0,3306908257.0,,20065668635.0,444197516.0,360140308.6,3296557750.0,75576918.3,60594986847.0,,65986089657.0,931750564.2,126077789.0,,4547026.14,,196314371.7,8533090258.0,,135925872.8,24971954.12,95924340.17,978853732.1,,1776464117.0,3348758342.0,28254773450.0,1372225370.0,9330901882.0,1989948747.0,0.0,12128941564.0,31982431792.0,83511942.1,1032440056.0,40530045688.0,1359776099.0,494684896.7,50909587.1,79015425.88,27726129585.0,4115736734.0,14838865.54,1152238806.0,3486000.0,639137046.2,1054816810.0,39834671.56,442004493.3,286051368.8,481492627.1,2408350250.0,22718473.79,81936943.67,4779835655.0,162567237.1,110376888.0,,64190474.63,56561859.19,68625364.26,,33599605.59,3970537327.0,228174673.6,,,971321378.6,39472043.8,11480377424.0,5875288100.0,169575397.1,1713995943.0,3244603381.0,5342575138.0,0.0,1332655376.0,2014371029.0,39287099.33,8589136364.0,,,4366184075.0,132393616.2,,1562225275.0,2607689942.0,43534994996.0,55580440.8,35469513009.0,2427072595.0,192807975.5,,29076876.18,165600000.0,,971570564.6,587966866.7,,1139194488.0,692654912.6,6386221162.0,61877516.72,1599033723.0,389135909.6,,3522634436.0,,,23735000.0,124750514.8,490650558.8,15319161863.0,166215543.3,252119246.4,4096039604.0,416045332.5,557000000000.0,,4351560317.0,1784217422.0,,1050499364.0,3525684244.0,232278664.4,
2008,240532594.6,3163591147.0,255677957.8,11571681416.0,2788980205.0,395994365.4,18633092318.0,3746731607.0,1607799226.0,43856319.95,6295821584.0,64724601.11,116999586.9,1030020018.0,1038051933.0,,233292390.7,883027522.9,18717737.5,327194708.2,24452903036.0,361989034.5,,332400254.3,31511483.79,19342058405.0,4098459038.0,4641877576.0,86362099113.0,368910574.9,346586125.7,159998426.6,207724344.3,9051130502.0,0.0,89057268.72,453803054.2,2918695853.0,48081444318.0,36274835.28,4788030121.0,333538881.6,5172336907.0,1646000000.0,3779880350.0,,22227721830.0,505779818.3,388187596.7,3958118334.0,53585658.62,66009448127.0,,65619450480.0,1090160251.0,113668160.2,,17163533.46,,292754658.8,10574138499.0,,166494048.3,30520593.42,132428400.6,1295957074.0,,1867877499.0,3232202215.0,33002376727.0,1582890834.0,11081950209.0,3116304020.0,0.0,14191949919.0,36839989746.0,130699170.7,1358383580.0,46361468280.0,1540810813.0,580011940.7,61124321.93,82630723.43,26072410508.0,4430342077.0,16267888.96,1169485904.0,3907000.0,1100068652.0,1511363007.0,27350681.86,541390194.6,236720167.1,581752272.9,2944958473.0,36845650.5,103271539.5,4939665939.0,172658158.9,142919351.1,,85106382.98,66749871.33,83709455.73,123323383.8,44464251.4,4411795565.0,266250021.2,,53630486.48,1615533211.0,42659728.78,12374848940.0,6370921986.0,187069695.8,1661242822.0,3462483745.0,5226678787.0,0.0,1503663891.0,2270904919.0,39332022.27,9349421394.0,,,4812099462.0,168154857.4,,2317500000.0,3000404945.0,56183785393.0,67660359.62,38222933333.0,3228000000.0,216870289.5,,23645736.56,173000000.0,,1111631538.0,896390706.9,,1411710285.0,829384406.9,6024791006.0,66657830.2,1732416848.0,611426848.7,57009189.27,4465994062.0,52467120.6,,23651000.0,139098455.7,578911487.3,17127313222.0,194000300.9,311856269.3,4811019855.0,567703932.8,621000000000.0,,5660456451.0,2137625597.0,,1196411766.0,3285925081.0,278055135.8,
2009,251869514.8,3311193245.0,182736862.5,13836351259.0,2981852290.0,359499343.5,18960138513.0,3334754940.0,1472909977.0,,5620670063.0,,127333296.6,1258791157.0,963254164.0,,242471357.8,675426505.1,17267537.5,345777777.8,25648809911.0,349759722.8,,330147278.7,35992384.36,18936226052.0,4055544323.0,3902221588.0,106000000000.0,420059044.5,343265154.0,122378011.0,,9033202673.0,0.0,92462555.07,471352781.1,2718559513.0,47470073335.0,,4337355690.0,320855289.2,5280588156.0,1949000000.0,4017404478.0,,20178274985.0,434340865.2,339627768.0,3940584835.0,51285722.32,66884028879.0,,57914627858.0,603655214.9,118290743.9,,7095299.575,13744583.7,371927587.9,10641348183.0,,147410544.1,31055650.89,156802557.3,1129098496.0,,1475818169.0,3304459138.0,38722154392.0,1415725373.0,12584623339.0,3237179487.0,0.0,14030376087.0,34054481324.0,114808331.8,1568309859.0,51465158208.0,1271890276.0,578071672.4,67213747.35,136589738.0,24575661939.0,4208871206.0,13973614.53,1426202322.0,7193000.0,,1522232372.0,47399768.93,404826028.7,222959826.9,363809251.1,3055069442.0,24906387.27,70985221.42,4855514856.0,158716661.5,144434608.4,,76683387.91,37633746.0,84302809.4,114824329.4,58797381.82,3964817705.0,299516030.2,,53000300.73,1504486172.0,41721772.9,12131812076.0,6195603602.0,209703502.0,1623013593.0,3367490247.0,5274564971.0,0.0,1848562930.0,2115785124.0,52048171.78,7903812008.0,,,4949690419.0,168486261.9,,1948351648.0,2225144540.0,51532116798.0,75278486.05,41267200000.0,3180483010.0,214824243.0,,26405564.66,189900000.0,,974288479.2,609898632.6,,1350294439.0,798868642.2,5062962024.0,75911617.99,2181974581.0,738903737.1,55130817.09,4799654668.0,47529274.32,,36481000.0,138523710.2,564775933.7,16352301844.0,219476865.3,293527670.7,3452467130.0,577056008.5,669000000000.0,,4055379599.0,2401450914.0,,1420775264.0,3592687702.0,220962285.8,
2010,298146852.5,3500794836.0,185893242.0,17504697073.0,3475348407.0,395011507.8,23217692816.0,3218351224.0,1476608734.0,,5244720513.0,,123700474.7,1624625086.0,893467534.0,,219915489.5,767699285.9,15337250.0,327413146.1,34002944470.0,390719540.0,,348672725.3,51585274.5,19315688825.0,4115407849.0,4894081125.0,116000000000.0,387692140.0,354054397.8,183682097.5,218390920.6,10422054494.0,0.0,94277533.04,477587428.6,2497902955.0,46255521194.0,,4503492127.0,354856781.4,5671309117.0,2094000000.0,4407286453.0,,19710785450.0,332231196.9,303617033.1,3717180505.0,50408953.71,61781748108.0,268738503.9,58082848795.0,454178215.2,122480468.5,,,17129808.17,,8163619387.0,,169798840.1,31075055.49,170186979.7,1015876654.0,,1350820413.0,4663365759.0,46090445657.0,1274228688.0,13561272454.0,3752905983.0,0.0,14605298604.0,32020819951.0,115571396.0,1557887324.0,54655450735.0,1501815344.0,622049847.8,77237992.31,167857928.0,28175181219.0,4335204653.0,15356402.95,1585406302.0,8458000.0,,1532026109.0,70661037.37,326320918.7,274135432.5,259672124.2,3160804832.0,18335718.27,56922892.89,5897198481.0,130021469.1,146786545.7,,75094861.9,54855717.51,99189931.71,,49984217.91,3854285351.0,396539101.4,,66889841.44,1990099669.0,44272442.92,11220523280.0,6498659038.0,254950072.1,1930748002.0,3671391417.0,5974613176.0,0.0,2178945723.0,2438189569.0,46335624.37,8790170132.0,,,4718924038.0,204605254.8,,1876758242.0,2086220460.0,58720227609.0,74514417.29,45244533333.0,,195732892.9,,25062278.63,201000000.0,,872339631.7,650910667.8,,1137680536.0,772085107.5,5885935800.0,102032175.0,2346021283.0,615817007.5,56832843.04,4962419956.0,53756933.71,,26389000.0,143063064.8,571189045.7,17939370512.0,282725098.8,608685868.6,3729503859.0,755659469.7,698000000000.0,,3991194835.0,2672286425.0,,1448153377.0,4188168092.0,280187778.6,98293000.0
2011,325807003.7,3639496374.0,197006789.2,19181756297.0,4051930105.0,390871433.9,26597198655.0,3409721209.0,3080084996.0,,5499370964.0,,138850860.2,1801539802.0,829031753.5,,211878260.6,756277351.3,15416250.0,403568566.1,36936209896.0,415371529.0,,363324481.2,49874328.73,21393720864.0,4973863849.0,5686752070.0,138000000000.0,357330259.0,347477885.7,238787546.6,,10306578506.0,0.0,93744493.39,479735318.4,2474313259.0,48140347951.0,,4518590127.0,348559830.1,8652237040.0,2453700000.0,4463974191.0,,19695435494.0,389237580.9,332441772.4,4099505807.0,60785527.47,64600927220.0,265965337.6,60270435687.0,468779626.8,234327479.6,,,17519804.35,,7128608267.0,,197433150.7,32416747.54,200358405.9,1106464042.0,,1472069832.0,5838026186.0,49633815794.0,1300331547.0,14277667361.0,4278632479.0,0.0,16343210462.0,33828804971.0,133638559.8,1594788732.0,60762213841.0,1803970782.0,646678106.7,86423386.41,192159418.5,30991707946.0,5393526319.0,19009820.6,1626533997.0,13271000.0,,1751910641.0,58169320.75,344605215.4,256962415.8,296834929.2,3342698956.0,22966963.69,71989808.01,6471388439.0,132461994.8,161062674.6,,79376663.82,87157848.16,118871183.0,,52804842.99,4692483660.0,443591424.5,,83947561.38,2384936022.0,51453111.13,11647934608.0,7232260585.0,284518851.1,2080091009.0,5000715215.0,6954787511.0,0.0,2355167834.0,2701492158.0,64193136.14,9455422988.0,,,4904393519.0,285106240.8,,,2379871482.0,70237523951.0,75383928.56,48530933333.0,,230190350.7,,25476183.91,220700000.0,,986958193.7,1052721970.0,,1064842811.0,665679671.4,6324747364.0,106629408.9,2494887483.0,609706993.1,59018874.0,5512983861.0,71342116.79,,20530000.0,146080695.2,715239597.1,17304881561.0,307473984.2,607135070.9,3684691424.0,824833542.2,711000000000.0,,3577531587.0,2686520590.0,,1612254443.0,4594154078.0,309113764.2,198438000.0
2012,238583385.4,4144634851.0,183204695.7,19024098026.0,4563217859.0,380571678.9,26216580848.0,3187227449.0,3246122613.0,58966662.28,5168997834.0,78223091.04,147729698.9,1823425076.0,807529319.0,,197344650.2,817069894.1,15219125.0,499870043.4,33987005074.0,411261473.9,,326874161.7,42746025.19,20452107111.0,4592165378.0,5466101782.0,157000000000.0,407596534.1,354447463.1,332493979.4,,11706271913.0,0.0,126872246.7,414496321.4,2220610395.0,46470870905.0,,4422458084.0,396187178.6,9326287144.0,2589776000.0,4557748767.0,,18860623363.0,436852911.6,366539017.7,3943239958.0,59221516.41,60035153811.0,278143957.1,58495656721.0,491982529.4,337260972.7,168913357.5,11173079.86,24491750.68,,5914988423.0,,224366543.6,33542606.6,212341274.3,955320163.6,,1322277703.0,6531097955.0,47216920048.0,1157531730.0,16493963287.0,4141066054.0,0.0,15567095862.0,29781008205.0,137635505.7,1472816901.0,60011530195.0,2177543205.0,840072590.0,107529842.9,217305727.7,31951760810.0,5941536637.0,20327157.66,1757213930.0,15179000.0,2987413408.0,1474902628.0,53240145.82,328631681.6,237503049.8,255740342.6,3402700836.0,23870072.82,68636017.8,6978776719.0,119410402.5,148865779.9,2969236076.0,67712201.3,113622769.9,139100553.3,142299912.3,46155953.69,4507252007.0,412163503.6,,148865779.9,2316478200.0,70132969.8,10364720787.0,7143962183.0,256686839.5,2094946041.0,9250650195.0,7478971082.0,0.0,2857983382.0,2898685257.0,110623185.3,8986838792.0,,,4137254045.0,320909756.6,,,2102886223.0,81469399931.0,79793910.09,56497866667.0,,196661489.0,,29758934.08,224300000.0,,853622633.2,988225988.7,,1020180035.0,543496416.5,6243671605.0,90639795.27,,,62931049.68,5491915221.0,76260471.83,,33388000.0,168762442.5,681225950.6,17958240406.0,359739418.8,351838247.0,4136888486.0,924640335.6,685000000000.0,,5114847100.0,3360860380.0,,1618840127.0,4489590096.0,346301423.1,318272000.0
2013,217194107.1,6090751702.0,180015508.8,23561061947.0,5137974301.0,444551859.5,24825262589.0,3229065841.0,3367574161.0,60859500.09,5263164883.0,86003157.64,166136345.2,2047989071.0,899584003.5,,197617188.8,971107820.3,17778875.0,564409840.8,32874787231.0,412094279.8,,306438573.6,47923245.08,18515731210.0,5032883664.0,5529879481.0,180000000000.0,430003643.4,392840660.7,374475561.3,367057323.3,12503812627.0,0.0,119383259.9,384925361.0,2148784401.0,45930540563.0,,4216647585.0,383380254.1,10161588239.0,2735825000.0,4359834244.0,,17242959322.0,479314460.8,345064165.8,4161139945.0,58108276.9,62417099178.0,282163387.6,56861759588.0,441878927.0,254997057.4,196818705.6,10378890.69,21710792.65,,5655183036.0,,249757853.4,35163485.79,294917779.4,956952644.1,51595.84748,1280050962.0,8384028601.0,47403528801.0,1195763444.0,11997186984.0,7780188679.0,0.0,17319707976.0,29957445905.0,128431323.0,1444929577.0,49023932407.0,2551124375.0,860560896.1,119000613.9,243470109.9,34311220715.0,5698067233.0,22677720.33,1935718241.0,15111500.0,3964690154.0,1600841410.0,47941183.17,354862149.7,258655906.2,283568932.7,4065552317.0,26710522.13,71877874.49,7837613530.0,126506348.7,153833697.7,2366989085.0,64836243.08,103464069.9,157892114.4,144215483.5,62925520.09,4915722759.0,389958736.7,,106064286.3,2418760171.0,74532010.94,10226260325.0,7391829787.0,281038425.7,2134105838.0,8766319896.0,7645455529.0,0.0,3305451871.0,3377027861.0,105100890.6,9275711727.0,,,4724102082.0,371215575.4,,,2452512981.0,88352896464.0,82480715.58,67020000000.0,,236737916.0,,31684939.41,237500000.0,26050000.0,919809908.3,981983050.8,,967923107.9,506742932.1,6528737467.0,86040376.76,,726459396.0,72419237.31,5901296947.0,,,31683000.0,211176025.9,759358881.2,18662574078.0,443379945.5,300075573.4,4386463155.0,1045084368.0,640000000000.0,,6199698500.0,3727249276.0,,1648750524.0,4118208483.0,381345802.1,356700000.0
2014,268227074.2,6841864484.0,178120368.0,22755071477.0,4979442724.0,457807021.8,25783708714.0,3305159256.0,3427179917.0,62177294.74,5191509381.0,92990706.19,177166954.9,2355991525.0,835716950.6,,190380454.6,1010827014.0,19916875.0,625885094.1,32659614241.0,527785231.7,,346281450.3,38407006.26,17853720278.0,4612776715.0,5102779356.0,201000000000.0,521260479.6,401529079.8,341224738.6,704893662.2,11845957098.0,0.0,125638766.5,357806840.0,2022883295.0,46102673010.0,,4056861511.0,437572091.1,9724379972.0,2786519000.0,5085120542.0,,17178549315.0,512119045.1,414476025.8,3985508352.0,46079423.53,63613569143.0,208124753.5,59182858554.0,415642426.2,252653419.0,196945589.8,14599956.87,21470829.16,166540254.6,5531285909.0,,245672981.8,39280999.18,314071900.2,906625906.4,53511.5951,1209801890.0,6929255301.0,50914108341.0,1192733691.0,9901105170.0,6921269719.0,0.0,18485829607.0,27701034335.0,121309728.7,1548873239.0,46881244398.0,2306464574.0,819044152.8,127970989.4,277969040.2,37552328673.0,5832249789.0,,2270065960.0,14531000.0,3755658598.0,1914586604.0,47693200.77,426900271.7,279019013.1,295728965.3,4048610929.0,27565618.85,69676703.34,8663381606.0,124185105.7,218118382.3,2372895303.0,67544018.04,105102478.6,173752180.8,144844330.7,49454513.58,4919244942.0,537453813.3,,145600356.0,2357665891.0,81391931.09,10332602878.0,7334073604.0,328115662.2,2274148859.0,8213524057.0,8654930762.0,0.0,3217579346.0,3103128266.0,112375527.6,10345153575.0,,,4111548064.0,398370979.3,,,2691470287.0,84696504653.0,90937755.73,80762400000.0,,239893611.6,,48810630.79,233900000.0,60258000.0,913368512.8,1301525424.0,,997703821.8,486194870.4,6555518064.0,81355330.93,,392382917.2,83080003.64,5729784358.0,104280654.0,,29624000.0,188885941.7,908357287.6,17772167745.0,507287182.6,325662842.0,4033331370.0,1034500559.0,610000000000.0,,1554727108.0,4255721581.0,,1714830844.0,3892469155.0,443604396.0,368100000.0
2015,199518614.8,3608299115.0,132350667.6,,5482616701.0,447379807.5,24045569111.0,2665409782.0,2943396693.0,66164584.44,4202062770.0,90896085.89,147934736.7,2815281641.0,660847880.3,,162215681.9,723659955.0,19717625.0,575524224.9,24617701683.0,424022039.2,,383739877.5,26703863.39,17937641895.0,4521076909.0,4630772774.0,214000000000.0,569671147.2,353815199.9,491276856.5,,9127165375.0,0.0,118370044.1,327891760.0,1779887189.0,39812576245.0,,3364047774.0,458007157.5,10412714003.0,2597510000.0,5475490833.0,,15188853150.0,463568814.5,442551536.5,3399134967.0,42418008.45,55342131529.0,170374503.3,53862185493.0,299514176.3,190515191.5,221414232.3,14288131.91,17036943.11,,4818121326.0,,252455480.6,46447838.13,356259475.5,753544947.7,73562.29689,1132476292.0,7639095193.0,51295483754.0,997005656.0,10588769671.0,9604231011.0,0.0,16969432086.0,22180845070.0,123854135.7,1614929577.0,42106103306.0,2046197674.0,843667802.8,117003250.6,325188062.3,36570769323.0,5735132890.0,,2239416094.0,14799000.0,,2057866407.0,44025926.25,471221026.9,276145059.3,282688255.5,3268363376.0,23051814.59,58932847.76,7739521462.0,99983659.56,309170682.2,2552370442.0,56891427.3,101705866.0,119657390.7,132931217.7,40793415.43,4532069852.0,518231065.4,,,2065557663.0,98932947.15,8667849617.0,5815228175.0,323797729.6,1943757736.0,7533550065.0,9483482373.0,0.0,3312214570.0,3335552977.0,99840642.68,10212785781.0,,,3565420872.0,386538864.3,,,2580594158.0,66418708184.0,103563214.7,87185866667.0,2279621640.0,214827965.2,,39226514.27,247700000.0,46614000.0,724151880.2,1151920377.0,,985915493.0,400771875.3,5387123174.0,73527854.06,,220982331.6,69977174.74,5724812311.0,95763184.88,,36959000.0,202106905.5,979494041.9,15880927524.0,517075761.8,306140404.6,3616896001.0,969906845.5,596000000000.0,,320539158.0,4562632501.0,,,3488867948.0,372447569.8,376677000.0
2016,185878310.1,2764054937.0,130853162.6,,4509647660.0,431396218.6,26382947050.0,2885947386.0,1396969108.0,66462843.08,4314102067.0,79581568.05,149467363.2,3239738758.0,755406457.6,,157912010.6,597207572.1,21712887.5,552381263.9,24224746901.0,403366488.7,,514463449.2,26832998.82,17782775543.0,4571348247.0,4796010962.0,216000000000.0,602538731.2,387437830.9,395733745.2,501812144.9,8675980823.0,0.0,123656387.7,295355010.0,1954935000.0,41579494874.0,,3592727944.0,479722172.8,10217081700.0,2513200000.0,4513022527.0,,14014439635.0,497653404.3,490177248.5,3415008250.0,42649282.3,57358414419.0,202815390.7,48118943518.0,315194446.3,161751874.3,161856744.5,,,18233154.2,4963484464.0,,290912704.0,51562130.82,363272338.5,702005705.9,64514.31661,1288676093.0,7385408685.0,56637622641.0,1001610418.0,12263957415.0,5970383698.0,0.0,14783814748.0,25033027895.0,137649061.8,1768309859.0,46471287714.0,1281103432.0,933103002.5,115645311.8,382100547.3,36885283430.0,6446742131.0,,2606456908.0,14712000.0,,1741456650.0,41489543.36,635448102.4,260729679.6,406859305.4,3327031890.0,29656360.86,59394995.92,6019769275.0,101492863.4,362398902.2,2455784120.0,61714551.61,96365298.28,112203469.3,136064876.0,35748121.99,4169374001.0,425388449.6,,166192292.3,1723204266.0,85073598.44,9115240932.0,5997385048.0,356495278.6,2093352062.0,7935955787.0,9973768059.0,0.0,2536072335.0,4357991313.0,79051319.31,9164190587.0,,,3569059626.0,343232340.6,,,2644159836.0,69245309461.0,107278618.7,63672800000.0,2748511976.0,304764264.2,,37414732.17,247600000.0,47706000.0,710397717.1,135338143.6,,1003048084.0,449177539.1,5427549191.0,72447621.01,,309567431.7,82019690.41,5876294938.0,,,26217000.0,216276660.0,987734705.2,17853980850.0,544218297.9,318551679.3,3423286811.0,988223629.6,600000000000.0,,218154892.9,5017401787.0,,,3169756001.0,299504759.9,358065000.0
2017,191407113.2,3062872914.0,144382688.7,,5459643672.0,443610413.3,27691112417.0,3138359204.0,1528859592.0,63908678.43,4484652582.0,116142782.4,191065838.8,3594007980.0,824187016.9,,164638050.3,631145399.2,23456750.0,574070189.6,29283050314.0,346706804.4,,522430455.5,27516264.18,21343371455.0,4628401509.0,5370018135.0,228000000000.0,501578732.2,408157575.1,295236074.3,371937055.1,10018029818.0,0.0,122552919.0,357380920.8,2077722061.0,45381722042.0,,3764033344.0,533077263.1,10073364021.0,2462700000.0,2765588434.0,,16043533257.0,537440226.9,503158174.3,3429968212.0,45705790.34,60417498822.0,267430770.8,46433303401.0,308227183.5,189129841.5,199317873.4,,,,5093788906.0,,275014798.5,59724939.47,398460128.4,784300763.1,73613.49246,1463013911.0,8178144377.0,64559435281.0,1025063447.0,13931196490.0,7416385135.0,0.0,15581608422.0,26447892915.0,143545555.4,1939718310.0,45387031802.0,1390619095.0,1015384782.0,121515805.4,463810835.2,39170682136.0,6764636914.0,,2441074857.0,15334000.0,,1866534439.0,52594810.37,812108700.0,357671613.7,509390110.7,3461461531.0,30629080.99,66906090.19,5781437375.0,111826544.2,458709424.7,2221961060.0,65734886.38,82755201.79,128320232.4,143769318.6,47416537.07,3494832257.0,457882191.3,,200183930.0,1621218176.0,86725444.84,9580685498.0,6465750412.0,404705219.5,2328156653.0,6802665800.0,11461253917.0,0.0,2665785313.0,3755351173.0,71907641.56,9870680628.0,,,3646515110.0,348179657.5,,,3622068492.0,66527303992.0,115716812.4,70400000000.0,4382998817.0,305441261.6,,39577826.0,260900000.0,60406000.0,801700087.2,72388104.57,,1049074347.0,473796757.2,5526592999.0,88678493.74,,219081031.4,88414114.92,6305880241.0,,,25442000.0,202766994.3,858949581.3,17824007487.0,611215551.9,346762883.8,3647565178.0,1165710349.0,606000000000.0,,464821762.6,5073853534.0,,,3638936588.0,339664531.4,340522000.0
2018,198086263.3,1983613748.0,180488725.1,,4144991771.0,608854649.9,26711834225.0,3367460383.0,1708941176.0,65436595.26,4959692173.0,90212425.99,312467611.0,3894695211.0,1095591047.0,,221131597.1,715166688.7,23083112.5,618842083.1,27766427104.0,346588691.0,,529481042.0,30951301.32,21620598712.0,4795847181.0,5570724563.0,250000000000.0,607848217.9,429892180.6,295348364.6,292260465.3,10602860967.0,0.0,,381879772.9,2710017583.0,49470627811.0,,4228194254.0,602522387.0,9583724288.0,2549400000.0,3109997892.0,,18248291491.0,618486125.4,496621069.7,3849013845.0,48412174.69,63799676593.0,261217395.1,49997192521.0,316508368.1,218444253.6,209150578.3,11487224.94,,,5227152013.0,,278420891.5,59809426.6,410414895.1,889523365.3,79690.88817,1642338440.0,7437197348.0,66510289108.0,1207582357.0,13194151137.0,6317977150.0,0.0,15946788601.0,27807513898.0,207772685.8,1957746479.0,46617954864.0,1613589333.0,1097458153.0,121163619.9,543205183.3,43069973343.0,7296266526.0,,2775557816.0,15786500.0,,1681433577.0,51064347.75,1030416770.0,419372654.8,679862611.1,3696856945.0,33957719.1,73258425.24,6567509336.0,117383985.5,495165301.0,2030465547.0,83806050.31,96067489.86,145206801.9,159013353.0,58369173.44,3469828207.0,451546508.8,,229639906.1,2043051719.0,81593932.69,11242755804.0,7067073381.0,398521544.9,2262928312.0,6710013004.0,11375525626.0,0.0,2708912280.0,3769741011.0,60592819.14,11596155291.0,,,4247842971.0,386556389.6,,,4608673550.0,61387546980.0,118959174.0,67554666667.0,1047878720.0,346772974.6,,29622478.1,266460000.0,61556000.0,904323391.5,59353054.3,,1280643981.0,529496122.7,5755367603.0,87787078.57,,232930989.8,104378994.6,6829203403.0,,,20610000.0,169332467.8,844227367.1,18967113031.0,675475234.1,408367566.7,4750219044.0,1168130814.0,649000000000.0,,,5500000000.0,,,3639879165.0,378025431.0,420364000.0
================================================
FILE: examples/data/sample.csv
================================================
time,Afghanistan,Angola,Albania,USA,Argentina
1960-01-01,1.0,2.0,1.0,5.0,1.0
1961-01-01,2.0,3.0,2.0,3.0,4.0
1962-01-01,3.0,4.0,5.0,2.0,5.0
================================================
FILE: examples/example1.py
================================================
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
df = pd.DataFrame(
{
"time": ["1960-01-01", "1961-01-01", "1962-01-01"],
"Afghanistan": [1, 2, 3],
"Angola": [2, 3, 4],
"Albania": [1, 2, 5],
"USA": [5, 3, 4],
"Argentina": [1, 4, 5],
}
).set_index("time")
cnv = nim.Canvas()
bar = nim.Barhplot.from_df(df, "%Y-%m-%d", "2d")
bar.set_time(callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"))
cnv.add_plot(bar)
cnv.animate()
# cnv.save("example1", 24, "gif")
plt.show()
================================================
FILE: examples/example2.py
================================================
import os
import matplotlib as mpl
import matplotlib.ticker as tick
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
from pynimate.utils import human_readable
dir_path = os.path.dirname(os.path.realpath(__file__))
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
def post(self, i):
self.ax.xaxis.set_major_formatter(
tick.FuncFormatter(lambda x, pos: human_readable(x))
)
df = pd.read_csv(dir_path + "/data/map.csv").set_index("time")
cnv = nim.Canvas()
dfx = pd.DataFrame(
{
"time": ["2012", "2013", "2014"],
"col1": [1, 2, 3],
"col2": [3, 2, 1],
}
).set_index("time")
bar = nim.Barhplot.from_df(df, "%Y", "MS", post_update=post, grid=False)
bar.set_title("Top 10 Richest Person in the World (yearly)")
bar.set_xlabel("Net Worth in Billion USD")
bar.set_time(callback=lambda i, dfr: dfr.data.index[i].year)
bar.set_bar_annots(text_callback=human_readable)
cnv.add_plot(bar)
cnv.animate()
plt.show()
# cnv.save("example1", 24, "gif")
================================================
FILE: examples/example3.py
================================================
import os
import matplotlib as mpl
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import pynimate as nim
dir_path = os.path.dirname(os.path.realpath(__file__))
mpl.rcParams["axes.facecolor"] = "#001219"
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
def post_update(self, i):
# annotates continents next to bars
for ind, (bar, x, y) in enumerate(
zip(self.bar_attr.top_cols, self.bar_attr.bar_length, self.bar_attr.bar_rank)
):
self.ax.text(
x - 0.3,
y,
self.dfr.col_var.loc[bar, "continent"],
ha="right",
color="k",
size=12,
zorder=ind,
)
df = pd.read_csv(dir_path + "/data/sample.csv").set_index("time")
col_var = pd.DataFrame(
{
"columns": ["Afghanistan", "Angola", "Albania", "USA", "Argentina"],
"continent": ["Asia", "Africa", "Europe", "N America", "S America"],
}
).set_index("columns")
bar_cols = {
"Afghanistan": "#2a9d8f",
"Angola": "#e9c46a",
"Albania": "#e76f51",
"USA": "#a7c957",
"Argentina": "#e5989b",
}
cnv = nim.Canvas(figsize=(12.8, 7.2), facecolor="#001219")
dfr = nim.BarDatafier(df, "%Y-%m-%d", "3d")
dfr.add_var(col_var=col_var)
bar = nim.Barhplot(dfr, post_update=post_update, rounded_edges=True, grid=False)
bar.set_column_colors(bar_cols)
bar.set_title("Sample Title", color="w", weight=600)
bar.set_xlabel("xlabel", color="w")
bar.set_time(
callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"), color="w"
)
bar.set_text(
"sum",
callback=lambda i, datafier: f"Total :{np.round(datafier.data.iloc[i].sum(), 2)}",
size=20,
x=0.72,
y=0.20,
color="w",
)
bar.set_bar_annots(color="w", size=13)
bar.set_xticks(colors="w", length=0, labelsize=13)
bar.set_yticks(colors="w", labelsize=13)
bar.set_bar_border_props(
edge_color="black", pad=0.1, mutation_aspect=1, radius=0.2, mutation_scale=0.6
)
cnv.add_plot(bar)
cnv.animate()
# plt.show()
cnv.save(
"example3",
24,
)
================================================
FILE: examples/lineplot_dark1.py
================================================
import os
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.ticker as tick
import pandas as pd
import pynimate as nim
from pynimate.utils import human_readable
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
mpl.rcParams["figure.facecolor"] = "#001219"
mpl.rcParams["axes.facecolor"] = "#001219"
mpl.rcParams["savefig.facecolor"] = "#001219"
dir_path = os.path.dirname(os.path.realpath(__file__))
def post(self, i):
self.ax.yaxis.set_major_formatter(
tick.FuncFormatter(lambda x, pos: human_readable(x))
)
df = pd.read_csv(dir_path + "/data/covid_IN.csv").set_index("time")
df = df["2020-05-01":"2021-01-01"]
cnv = nim.Canvas()
dfr = nim.LineDatafier(df, "%Y-%m-%d", "12h")
plot = nim.Lineplot(
dfr,
post_update=post,
palettes=["Set3"],
scatter_markers=False,
legend=True,
fixed_ylim=True,
grid=False,
)
plot.set_column_linestyles({"cured": "dashed"})
plot.set_title("Covid cases India(2020)", y=1.05, color="w", weight=600)
plot.set_xlabel("date", color="w", size=11)
plot.set_time(
callback=lambda i, datafier: datafier.data.index[i].strftime("%d %b, %Y"),
color="w",
size=13,
)
plot.set_line_annots(lambda col, val: f"({human_readable(val)})", color="w")
plot.set_legend(labelcolor="w")
plot.set_text(
"sum",
callback=lambda i, datafier: f"Total cases :{human_readable(datafier.data.cases.iloc[:i+1].sum() )}",
size=10,
x=0.84,
y=0.20,
color="w",
)
plot.set_xticks(colors="w", length=0, labelsize=10)
plot.set_yticks(colors="w", labelsize=10)
cnv.add_plot(plot)
cnv.animate(interval=20)
cnv.save("lineplot_dark", 24)
plt.show()
================================================
FILE: examples/lineplot_ex1.py
================================================
import os
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import pynimate as nim
for side in ["left", "right", "top", "bottom"]:
mpl.rcParams[f"axes.spines.{side}"] = False
dir_path = os.path.dirname(os.path.realpath(__file__))
df = pd.read_csv(dir_path + "/data/map.csv").set_index("time")
df = df.drop(columns=["USA"]).iloc[:, :8]
cnv = nim.Canvas()
plot = nim.Lineplot.from_df(
df, "%Y", "6MS", palettes=["Dark2"], legend=False, grid=False
)
plot.set_time(callback=lambda i, datafier: datafier.data.index[i].year)
plot.set_column_linestyles({"Albania": "dashed"})
cnv.add_plot(plot)
print(plot.column_linestyles)
cnv.animate()
# cnv.save("tt", 24)
plt.show()
================================================
FILE: mkdocs.yml
================================================
# Project information
site_name: Pynimate
site_url: https://julkaar9.github.io/
site_author: julkar9
site_description: >-
Pynimate is a python package for statistical data analysis
# Repository
repo_name: julkaar9/pynimate
repo_url: https://github.com/julkaar9/pynimate
# Copyright
copyright: Copyright © 2023 Md Julkarnaeen
theme:
name: material
logo: assets/pynimate_logo.png
favicon: assets/favicon.png
features:
- content.code.annotate
- content.tooltips
- navigation.indexes
- navigation.sections
- navigation.tabs
- navigation.top
- navigation.tracking
- toc.follow
palette:
- scheme: default
primary: white
accent: teal
toggle:
icon: material/weather-night
name: Switch to dark mode
- scheme: slate
primary: black
accent: teal
toggle:
icon: material/weather-sunny
name: Switch to light mode
icon:
repo: fontawesome/brands/github
nav:
- Home:
- Home: index.md
- Getting started: guide/starter.md
- User Guide:
- BarChart Dark Mode: guide/dark_mode.md
- Lineplot Dark Mode: guide/lineplot_darkmode.md
- Api Reference:
- Animators:
- Canvas: reference/canvas.md
- Baseplot: reference/baseplot.md
- Barhplot: reference/barhplot.md
- Lineplot: reference/lineplot.md
- Barplot: reference/barplot.md
- Data Modifiers:
- BaseDatafier: reference/datafiers/base_datafier.md
- BarDatafier: reference/datafiers/bar_datafier.md
- LineDatafier: reference/datafiers/line_datafier.md
- Datafier: reference/datafiers/datafier.md
- Utils: reference/utils.md
# Customization
extra:
# analytics:
# provider: google
# property: !ENV GOOGLE_ANALYTICS_KEY
social:
- icon: fontawesome/brands/github
link: https://github.com/julkaar9/pynimate
- icon: fontawesome/brands/python
link: https://pypi.org/project/pynimate/
markdown_extensions:
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
plugins:
- mkdocstrings
- search
================================================
FILE: pyproject.toml
================================================
# pyproject.toml
[build-system]
requires = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[project]
name = "pynimate"
version = "1.3.0"
description = "Python package for statistical data animations"
readme = "README.md"
authors = [{ name = "julkar9", email = "julkar9dev@gmail.com" }]
license = { text = "MIT License (MIT)" }
classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Operating System :: OS Independent",
"Topic :: Software Development :: Libraries :: Application Frameworks",
"Topic :: Software Development :: Libraries :: Python Modules",
]
keywords = ["animations", "framework", "data", "plots"]
dependencies = [
"numpy",
"pandas",
"matplotlib",
"seaborn",
]
requires-python = ">=3.9"
[project.optional-dependencies]
dev = ["black", "isort","mkdocs-material", "pip-tools", "pytest", "mkdocstrings[python]"]
[project.urls]
Homepage = "https://github.com/julkaar9/pynimate"
Documentation = "https://julkaar9.github.io/pynimate/"
================================================
FILE: requirements.txt
================================================
#
# This file is autogenerated by pip-compile with python 3.9
# To update, run:
#
# pip-compile --extra=dev pyproject.toml
#
black==23.3.0
# via pynimate (pyproject.toml)
build==0.10.0
# via pip-tools
certifi==2022.12.7
# via requests
charset-normalizer==3.1.0
# via requests
click==8.1.3
# via
# black
# mkdocs
# pip-tools
colorama==0.4.6
# via
# build
# click
# griffe
# mkdocs
# mkdocs-material
# pytest
contourpy==1.0.6
# via matplotlib
cycler==0.11.0
# via matplotlib
exceptiongroup==1.1.1
# via pytest
fonttools==4.38.0
# via matplotlib
ghp-import==2.1.0
# via mkdocs
griffe==0.27.0
# via mkdocstrings-python
idna==3.4
# via requests
importlib-metadata==6.4.1
# via
# markdown
# mkdocs
iniconfig==2.0.0
# via pytest
isort==5.12.0
# via pynimate (pyproject.toml)
jinja2==3.1.2
# via
# mkdocs
# mkdocs-material
# mkdocstrings
kiwisolver==1.4.4
# via matplotlib
markdown==3.3.7
# via
# mkdocs
# mkdocs-autorefs
# mkdocs-material
# mkdocstrings
# pymdown-extensions
markupsafe==2.1.2
# via
# jinja2
# mkdocstrings
matplotlib==3.6.2
# via
# pynimate (pyproject.toml)
# seaborn
mergedeep==1.3.4
# via mkdocs
mkdocs==1.4.2
# via
# mkdocs-autorefs
# mkdocs-material
# mkdocstrings
mkdocs-autorefs==0.4.1
# via mkdocstrings
mkdocs-material==9.1.6
# via pynimate (pyproject.toml)
mkdocs-material-extensions==1.1.1
# via mkdocs-material
mkdocstrings[python]==0.21.2
# via
# mkdocstrings-python
# pynimate (pyproject.toml)
mkdocstrings-python==0.9.0
# via mkdocstrings
mypy-extensions==1.0.0
# via black
numpy==1.23.4
# via
# contourpy
# matplotlib
# pandas
# pynimate (pyproject.toml)
# seaborn
packaging==23.1
# via
# black
# build
# matplotlib
# mkdocs
# pytest
pandas==1.5.1
# via
# pynimate (pyproject.toml)
# seaborn
pathspec==0.11.1
# via black
pillow==9.3.0
# via matplotlib
pip-tools==6.13.0
# via pynimate (pyproject.toml)
platformdirs==3.2.0
# via black
pluggy==1.0.0
# via pytest
pygments==2.15.0
# via mkdocs-material
pymdown-extensions==9.11
# via
# mkdocs-material
# mkdocstrings
pyparsing==3.0.9
# via matplotlib
pyproject-hooks==1.0.0
# via build
pytest==7.3.1
# via pynimate (pyproject.toml)
python-dateutil==2.8.2
# via
# ghp-import
# matplotlib
# pandas
pytz==2022.6
# via pandas
pyyaml==6.0
# via
# mkdocs
# pymdown-extensions
# pyyaml-env-tag
pyyaml-env-tag==0.1
# via mkdocs
regex==2023.3.23
# via mkdocs-material
requests==2.28.2
# via mkdocs-material
seaborn==0.12.1
# via pynimate (pyproject.toml)
six==1.16.0
# via python-dateutil
tomli==2.0.1
# via
# black
# build
# pyproject-hooks
# pytest
typing-extensions==4.5.0
# via
# black
# mkdocstrings
urllib3==1.26.15
# via requests
watchdog==3.0.0
# via mkdocs
wheel==0.40.0
# via pip-tools
zipp==3.15.0
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools
================================================
FILE: setup.py
================================================
# setup.py
from setuptools import setup
setup()
================================================
FILE: src/pynimate/__init__.py
================================================
"""
Pynimate
=====
Python package for statistical data animations.
Available Plots
---------------
Barhplot
Horizontal Bar Chart Race module
Lineplot
Module for Lineplot animations
Barhplot Example
---------------
It is assumed `pynimate` is imported as `nim`.
>>> import pynimate as nim
>>> import pandas as pd
>>> df = pd.read_csv("sample.csv").set_index("time")
>>> nim.Canvas()
>>> bar = nim.Barhplot.from_df(df, '%Y-%m-%d', 'MS')
>>> bar.set_time(callback=lambda i, datafier: datafier.data.index[i].year)
>>> bar.set_bar_annots(text_callback=human_readable)
>>> cnv.add_plot(bar)
>>> cnv.animate()
>>> cnv.save('sample', fps=24)
"""
__version__ = "1.3.0"
from .bar import Barplot
from .barhplot import Barhplot
from .baseplot import Baseplot
from .canvas import Canvas
from .datafier import BarDatafier, BaseDatafier, Datafier, LineDatafier
from .lineplot import Lineplot
================================================
FILE: src/pynimate/__init__.pyi
================================================
from pynimate.bar import Barplot
from pynimate.barhplot import Barhplot
from pynimate.baseplot import Baseplot
from pynimate.canvas import Canvas
from pynimate.datafier import BarDatafier, BaseDatafier, Datafier, LineDatafier
from pynimate.lineplot import Lineplot
__all__ = [
"Canvas",
"Barplot",
"Datafier",
"Baseplot",
"Barhplot",
"Lineplot",
"BaseDatafier",
"BarDatafier",
"LineDatafier",
]
================================================
FILE: src/pynimate/bar.py
================================================
import warnings
from types import SimpleNamespace
from typing import Callable, Union
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from matplotlib.patches import FancyBboxPatch
from pynimate.datafier import Datafier
class Barplot:
def __init__(
self,
data: pd.DataFrame,
time_format: str,
ip_freq: str,
ip_frac: float = 0.5,
n_bars: int = 10,
palettes: list[str] = ["viridis"],
post_update: Callable[
[plt.Axes, int, pd.DataFrame, pd.DataFrame, SimpleNamespace], None
] = None,
annot_bars: bool = True,
fixed_xlim: bool = True,
xticks: bool = True,
yticks: bool = True,
grid: bool = True,
rounded_edges: bool = False,
) -> None:
"""
Barplot is deprecated, use Barhplot instead
BarChartRace module that requires a valid time index.The data
should be in this format where time is set to index
```
Example:
>>> time col1 col2 col3 ...
>>> 2012 1 0 2
>>> 2013 2 3 1
```
Parameters
----------
data : pd.DataFrame
The data to be prepared
time_format : str
Index datetime format
ip_freq : str
Interpolation frequency
ip_frac : float, optional
Interpolation fraction (check end of docstring), by default 0.5
n_bars : int, optional
Number of bars to be visible on the plot, by default 10 or less
palettes : list[str], optional
List of color palettes to generate bar colors, by default ["viridis"]
post_update : Callable[[plt.Axes, int, Datafier, SimpleNamespace], None], optional
callback function for additional customization, by default None
annot_bars : bool, optional
Sets bar annotations, by default True
fixed_xlim : bool, optional
If False xlim will gradually change in every frame, by default True
xticks : bool, optional
Sets xticks, by default True
yticks : bool, optional
Sets yticks, by default True
grid : bool, optional
Sets xgrid, by default True
rounded_edges : bool, optional
Sets rounded bar edges, by default False
post_update args:
```
plt.Axes: The matplotlib Axes used for the barplot
int: Current animation frame or dataframe row
Datafier: The underlying datafier instance
SimpleNamespace: Contains the following attributes -
bar_rank, bar_length, top_bars, bar_colors
example:
>>> def post_update(ax, i, datafier, bar_attr):
>>> # sets log scale for x-axis
>>> ax.set_xscale("log")
```
ip_frac description:
```
ip_frac is the percentage of NaN values to be linearly
interpolated for column ranks
Consider this example
>>> a b
>>> date
>>> 2021-11-13 1.0 4.0
>>> 2021-11-14 NaN NaN
>>> 2021-11-15 NaN NaN
>>> 2021-11-16 NaN NaN
>>> 2021-11-17 NaN NaN
>>> 2021-11-18 2.0 6.0
with ip_frac set to 0.5, 50% of NaN's will be linearly
interpolated while the rest will back filled.
>>> a b
>>> 2021-11-13 1.00 4.00 << original value --------
>>> 2021-11-14 1.33 4.67 |
>>> 2021-11-15 1.67 5.33 | 50% linearly
>>> 2021-11-16 2.00 6.00 <- linear interpolation | interpolated
>>> 2021-11-17 2.00 6.00 upto here | rest are filled.
>>> 2021-11-18 2.00 6.00 << original value---------
This adds some stability in the barChartRace
and reduces constantly shaking of bars.
```
"""
warnings.warn(
"Barplot is deprecated, use Barhplot instead.", DeprecationWarning
)
self.n_bars = min(n_bars, len(data.columns))
self.datafier = Datafier(data, time_format, ip_freq, ip_frac, n_bars, palettes)
self.post_update = post_update or (lambda *args: None)
self.time_range = list(self.datafier.data.index)
self.length = len(self.time_range)
self.annot_bars = annot_bars
self.fixed_xlim = fixed_xlim
self.xticks = xticks
self.yticks = yticks
self.grid = grid
self.rounded_edges = rounded_edges
fig, self.ax = plt.subplots()
plt.close(fig)
self.text_collection = {}
self.extra_callbacks = {}
self.set_xylim()
self.set_barh()
self.set_bar_border_props()
self.set_xticks()
self.set_yticks()
self.set_grid()
self.set_bar_annots()
self.set_time()
def add_var(self, row_var: pd.DataFrame = None, col_var: pd.DataFrame = None):
"""Adds additional variables to the data, both row and column wise.\n
Row wise data format: The index should be equal to that of the actual data
```
time leap_year col2 ...
2012 yes 0
2013 no 3
```
Column wise data format: The index should be equal to the columns of the actual data.
```
index continent col2 ...
ind Asia 0
usa N America 3
jap Asia 2
```
Parameters
----------
row_var : pd.DataFrame, optional
Dataframe containing variables related to time, by default None
col_var : pd.DataFrame, optional
Dataframe containing variables related to columns, by default None
"""
self.datafier.add_var(row_var, col_var)
def set_bar_color(self, colors: Union[list, dict[str, str]]):
"""If colors is a list, length of colors should be equal to no of `datafier.bar_colors`.
If it is a dict, all columns of `datafier.top_cols` should be mapped to a color
Parameters
----------
colors : Union[list, dict[str, str]]
list of colors or dict of column to color mapping
"""
assert len(colors) == len(
self.datafier.bar_colors
), "Number of colors does not match number of columns"
if isinstance(colors, list):
self.datafier.bar_colors = {
k: v2 for v2, (k, v1) in zip(colors, self.datafier.bar_colors.items())
}
elif isinstance(colors, dict):
assert (
colors.keys() == self.datafier.bar_colors.keys()
), "All columns of datafier.top_cols are not present."
self.datafier.bar_colors = colors
else:
ValueError("colors must be list or dict")
def set_axes(self, ax: plt.Axes) -> None:
"""Sets the Axes of this plot
Parameters
----------
ax : plt.Axes
Axes of this plot
"""
self.ax = ax
def set_xylim(
self,
xlim: list[float] = [],
ylim: list[float] = [],
) -> None:
"""Sets xlim and ylim
Parameters
----------
xlim : list[float], optional
x axis limits in this format [min, max], by default [min, max + 5]
ylim : list[float], optional
y axis limits in this format [min, max], by default [0.5, n_bars + 0.6]
"""
if xlim != None:
assert (
len(xlim) == 2 or len(xlim) == 0
), "xlim is incorrect (correct format - [minLim, maxLim])"
# closes the previous figure window
# if hasattr(self, "fig"):
# plt.close(self.fig)
if xlim != None:
if xlim == []:
self.total_max = self.datafier.data.max().max()
xlim = [None, self.total_max + 5]
self.xlim = xlim
# self.ax.set_xlim(xlim)
if ylim == []:
ylim = [0.5, self.n_bars + 0.6]
self.ylim = ylim
def getTopXY(self, i: int) -> SimpleNamespace:
"""Prepares top n_bar columns and their respective attributes such as position, length, colors.
Not meant to be used outside animation update
Parameters
----------
i : int
Animation frame index
Returns
-------
SimpleNamespace
Bar rank, length. Top columns and their respective colors
"""
bar_rank = self.datafier.df_ranks.iloc[i].values
top_filt = (bar_rank >= 1) & (bar_rank <= self.n_bars)
bar_rank = bar_rank[top_filt]
bar_length = self.datafier.data.iloc[i].values[top_filt]
cols = self.datafier.data.columns[top_filt]
colors = [self.datafier.bar_colors[column] for column in cols]
return SimpleNamespace(
bar_rank=bar_rank, bar_length=bar_length, top_bars=cols, bar_colors=colors
)
def set_title(
self,
title: str,
x: float = 0,
y: float = 1.01,
size: float = 13,
color: str = "#777777",
**kwargs,
) -> None:
"""Sets the plot title and additional `kwargs` are passed to plt.text(**kwargs)
Parameters
----------
title : str
Title text
x : float, optional
x coordinate of the text, by default 0
y : float, optional
y coordinate, by default 1.01
size : float, optional
text size, by default 13
color : str, optional
text color, by default "#777777"
"""
self.text_collection["title"] = (
None,
{
**{
"x": x,
"y": y,
"s": title,
"color": color,
"size": size,
},
**kwargs,
},
)
def set_xlabel(
self,
text: str,
x: float = 0.43,
y: float = -0.09,
size: float = 13,
color: str = "#777777",
**kwargs,
) -> None:
"""Sets the plot xlabel and additional `kwargs` are passed to plt.text(**kwargs)
Parameters
----------
text : str
The xlabel text
x : float, optional
X coordinate of the text, by default 0.43
y : float, optional
Y coordinate, by default -0.09
size : float, optional
Text size, by default 13
color : str, optional
Text color, by default "#777777"
"""
self.text_collection["xlabel"] = (
None,
{
**{
"x": x,
"y": y,
"s": text,
"color": color,
"size": size,
},
**kwargs,
},
)
def set_time(
self,
callback: Callable[
[int, Datafier], str
] = lambda i, datafier: datafier.data.index[i],
x: float = 0.97,
y: float = 0.27,
size: float = 46,
weight: float = 800,
ha="right",
color: str = "#777777",
**kwargs,
) -> None:
"""Annotates the time in the plot and additional `kwargs` are passed to plt.text(**kwargs)
Parameters
----------
callback : Callable[ [int, pd.DataFrame], str ], optional
Callback function to customize the time text, by default `lambda i, datafier: datafier.data.index[i]`
x : float, optional
x coordinate of the text, by default 0.97
y : float, optional
y coordinate of the text, by default 0.27
size : float, optional
text size, by default 46
weight : float, optional
text weight, by default 800
ha : str, optional
horizontal alignment, by default "right"
color : str, optional
text color, by default "#777777"
callback args:
```
i: Animation frame / data row index
datafier: The datafier instance,
access the data using datafier.data
```
"""
self.text_collection["time"] = (
callback,
{
**{
"x": x,
"y": y,
"color": color,
"size": size,
"weight": weight,
"ha": ha,
},
**kwargs,
},
)
def set_text(
self,
key: str,
text: str = None,
callback: Callable[[int, Datafier], str] = None,
x: float = 0,
y: str = 0,
size: float = 13,
color: str = "#777777",
**kwargs,
):
"""General function to add custom texts in the plot. Either text or callback should be passd but not both.
Parameters
----------
key : str
Unique identifier for each texts, note: These keys, title, xlabel, time, are reserved.
overwrite them if you wish to use callbacks instead of texts in title or xlabel
text : str, optional
The text to be added in the plot, by default None
callback : Callable[[int, pd.DataFrame], str], optional
Callback function to customize the text, by default None
x : float, optional
X coordinate of the text, by default 0
y : str, optional
Y coordinate of the text, by default 0
size : float, optional
Text size, by default 13
color : str, optional
Text color, by default "#777777"
Callback args:
```
args:
i: Animation frame / data row index
datafier: The datafier instance
Example:
>>> lambda i, datafier: datafier.data.index[i]
```
"""
assert text or callback, "Both text and callback cannot be None"
self.text_collection[key] = (
callback,
{
**{
"x": x,
"y": y,
"s": text,
"color": color,
"size": size,
},
**kwargs,
},
)
if callback:
self.text_collection[key][1].pop("s")
def remove_text(self, keys: list[str]):
"""Removes texts by key
Parameters
----------
keys : list[str]
List of keys to be removed
"""
for key in keys:
self.text_collection.pop(key)
def set_bar_border_props(
self,
edge_color: str = "k",
radius: float = 0.5,
pad: float = -0.0040,
mutation_aspect: float = 0.2,
**kwargs,
) -> None:
"""Sets bar border properties. Additional `kwargs` are passed to FancyBboxPatch.
See https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.patches.FancyBboxPatch.html
Parameters
----------
edge_color : str, optional
Bar edge color, by default "k"
radius : float, optional
Bar border radius, by default 0.5
pad : float, optional
See above link, by default -0.0040
mutation_aspect : float, optional
See above link, by default 0.2
"""
self.bar_border_props = {
"edge_color": edge_color,
"radius": radius,
"pad": pad,
"mutation_aspect": mutation_aspect,
"kwargs": kwargs,
}
def _get_rounded_eges(
self,
) -> None:
"""Creates bar border properties.
See https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.patches.FancyBboxPatch.html
"""
border = self.bar_border_props
self.new_patches = []
for patch in reversed(self.ax.patches):
bb = patch.get_bbox()
color = patch.get_facecolor()
p_bbox = FancyBboxPatch(
(bb.xmin, bb.ymin),
abs(bb.width),
abs(bb.height),
boxstyle=f"round,pad={border['pad']}"
+ (
f",rounding_size={border['radius']}"
if border["radius"] != None
else ""
),
ec=border["edge_color"],
fc=color,
mutation_aspect=border["mutation_aspect"],
**border["kwargs"],
)
patch.remove()
self.new_patches.append(p_bbox)
def set_barh(self, bar_height: float = 0.86, **kwargs):
"""Sets barh properties, addition `kwargs` are passed to ax.barh(**kwargs)
Parameters
----------
bar_height : float, optional
Height of the bars (Note this is horizontal barplot), by default 0.86
"""
self.barh_props = {**kwargs}
self.barh_props["height"] = bar_height
def set_xticks(
self, axis: str = "x", colors: str = "#777777", labelsize: float = 12, **kwargs
):
"""Sets xtick properties, additional `kwargs` are passed to ax.tick_params(**.kwargs)
Parameters
----------
axis : str, optional
Defines tick axis, by default "x"
colors : str, optional
Sets tick color, by default "#777777"
labelsize : float, optional
Sets tick size, by default 12
"""
self.xtick_props = {
"axis": axis,
"colors": colors,
"labelsize": labelsize,
**kwargs,
}
def set_yticks(
self, axis: str = "y", colors: str = "#777777", labelsize: float = 10, **kwargs
):
"""Sets ytick properties, additional `kwargs` are passed to ax.tick_params(**kwargs)
Parameters
----------
axis : str, optional
Defines tick axis, by default "y"
colors : str, optional
Sets tick color, by default "#777777"
labelsize : float, optional
Sets tick size, by default 10
"""
self.ytick_props = {
"axis": axis,
"colors": colors,
"labelsize": labelsize,
**kwargs,
}
def set_grid(
self,
which: str = "major",
axis: str = "x",
linestyle: str = "-",
grid_behind: bool = True,
**kwargs,
) -> None:
"""Sets the plots grid, additional `kwargs` are passed to ax.grid(**kwargs)
Parameters
----------
which : str, optional
The grid lines to apply the changes on, by default "major"
axis : str, optional
Sets the axis of the grid, by default "x"
linestyle : str, optional
Grids line style, by default "-"
grid_behind : bool, optional
Sets the grid behind the bars, by default True
"""
self.grid_behind = grid_behind
self.grid_props = {
"which": which,
"axis": axis,
"linestyle": linestyle,
**kwargs,
}
def set_bar_annots(
self,
text_callback: Callable[[float], Union[str, float]] = lambda val: np.round(
val, 2
),
xoffset: float = 0.1,
yoffset: float = -0.1,
ha: str = "left",
**kwargs,
) -> None:
"""Sets bar annotation properties, additional kwargs are passed to `ax.text(**kwargs)`.
(Note these annotations are the texts near the bars)
Parameters
----------
text_callback : Callable[[float], Union[str, float]], optional
Callback function for customizing the text, by default lambda val:np.round(val, 2)
xoffset : float, optional
X offset relative to bar length, by default 0.1
yoffset : float, optional
Y offset relative to bar height, by default -0.1
ha : str, optional
Horizontal alignment, by default "left"
"""
self.bar_annot_props = {
"callback": text_callback,
"xoffset": xoffset,
"yoffset": yoffset,
"ha": ha,
"kwargs": kwargs,
}
def add_extras(
self,
key: str,
callback: list[
Callable[
[plt.Axes, int, Datafier, SimpleNamespace],
None,
]
],
):
"""Adds extra callback functions for additional customizations
Parameters
----------
key : str
Unique identifier for each callback function
callback : list[Callable[[plt.Axes, int, pd.DataFrame, pd.DataFrame], None]]
Callback function for additional customization
Callback args:
```
plt.Axes: The matplotlib Axes used for the barplot
int: Current animation frame / dataframe row
Datafier: The underlying datafier instance
SimpleNamespace: Contains the following attributes -
bar_rank, bar_length, top_bars, bar_colors
Example:
>>> lambda ax, *args: ax.set_xcale("log)
```
"""
self.extra_callbacks[key] = callback
def init(self) -> None:
"""FuncAnimation init"""
bar_attr = self.getTopXY(0)
self.ax.set_axisbelow(self.grid_behind)
self.ax.barh(
bar_attr.bar_rank,
bar_attr.bar_length,
tick_label=bar_attr.top_bars,
**self.barh_props,
)
def update(self, i: int) -> None:
"""FuncAnimation update
Parameters
----------
i : int
Animation frame
"""
self.ax.clear()
if self.fixed_xlim:
self.ax.set_xlim(self.xlim)
self.ax.set_ylim(self.ylim)
bar_attr = self.getTopXY(i)
self.ax.barh(
bar_attr.bar_rank,
bar_attr.bar_length,
tick_label=bar_attr.top_bars,
color=bar_attr.bar_colors,
**self.barh_props,
)
if self.annot_bars:
for x, y in zip(
bar_attr.bar_length,
bar_attr.bar_rank,
):
self.ax.text(
x + self.bar_annot_props["xoffset"],
y + self.bar_annot_props["yoffset"],
self.bar_annot_props["callback"](x),
ha=self.bar_annot_props["ha"],
**self.bar_annot_props["kwargs"],
)
if self.xticks:
self.ax.tick_params(**self.xtick_props)
if self.yticks:
self.ax.tick_params(**self.ytick_props)
if self.grid:
self.ax.grid(**self.grid_props)
for k, v in self.text_collection.items():
if v[0]:
self.ax.text(
s=v[0](i, self.datafier),
transform=self.ax.transAxes,
**v[1],
)
else:
self.ax.text(
**v[1],
transform=self.ax.transAxes,
)
for k, v in self.extra_callbacks.items():
v(self.ax, i, self.datafier, bar_attr)
self.post_update(self.ax, i, self.datafier, bar_attr)
if self.rounded_edges:
self._get_rounded_eges()
for patch in self.new_patches:
self.ax.add_patch(patch)
================================================
FILE: src/pynimate/barhplot.py
================================================
from types import SimpleNamespace
from typing import Callable, Union
import numpy as np
import pandas as pd
from matplotlib.patches import FancyBboxPatch
from pynimate.baseplot import Baseplot
from pynimate.datafier import BarDatafier
class Barhplot(Baseplot):
def __init__(
self,
datafier: BarDatafier,
palettes: list[str] = ["viridis"],
post_update: Callable[[__qualname__, int], None] = lambda self, i: None,
annot_bars: bool = True,
rounded_edges: bool = False,
fixed_xlim: bool = True,
xticks: bool = True,
yticks: bool = True,
grid: bool = True,
) -> None:
"""Bar Chart animation module that requires a valid time index.The data
should be in this format where time is set to index
```
Example:
>>> time col1 col2 col3 ...
>>> 2012 1 0 2
>>> 2013 2 3 1
```
Parameters
----------
datafier : BarDatafier
The datafier instance
palettes : list[str], optional
List of color palettes to generate bar colors, by default ["viridis"]
post_update : Callable[[Barhplot, i], None], optional
callback function for additional customization, by default lambda self, i: None
annot_bars : bool, optional
Sets bar annotations, by default True
fixed_xlim : bool, optional
If False xlim will gradually change in every frame, by default True
xticks : bool, optional
Sets xticks, by default True
yticks : bool, optional
Sets yticks, by default True
grid : bool, optional
Sets xgrid, by default True
rounded_edges : bool, optional
Sets rounded bar edges, by default False
post_update args
```
self: Baseplot instance
i: Frame index
example:
>>> def post_update(self, i):
>>> # sets log scale for x-axis
>>> self.ax.set_xscale("log")
```
"""
super().__init__(
datafier, palettes, post_update, fixed_xlim, True, xticks, yticks, grid
)
self.annot_bars = annot_bars
self.rounded_edges = rounded_edges
self.set_barh()
self.set_bar_border_props()
self.set_bar_annots()
@classmethod
def from_df(
cls,
data: pd.DataFrame,
time_format: str,
ip_freq: str,
palettes: list[str] = ["viridis"],
post_update: Callable[[__qualname__, int], None] = lambda self, i: None,
annot_bars: bool = True,
rounded_edges: bool = False,
fixed_xlim=True,
xticks=True,
yticks=True,
grid=True,
):
return cls(
BarDatafier(data, time_format, ip_freq),
palettes,
post_update,
annot_bars,
rounded_edges,
fixed_xlim,
xticks,
yticks,
grid,
)
def set_xylim(
self,
xlim: list[float] = [],
ylim: list[float] = [],
xoffset: float = 5,
yoffset: float = 0.6,
) -> None:
"""Sets xlim and ylim.
Parameters
----------
xlim : list[float], optional
x axis limits in this format [min, max], by default [min, max + xoffset]
ylim : list[float], optional
y axis limits in this format [min, max], by default [0.5, n_bars + yoffset]
xoffset : float, optional
additional offset value for x axis max, by default 5
yoffset : float, optional
additional offset value for y axis max, by default 0.6
"""
super().set_xylim(xlim, ylim)
if xlim == []:
self.total_max = self.datafier.data.max().max()
xlim = [None, self.total_max + xoffset]
self.xlim = xlim
if ylim == []:
ylim = [0.5, self.dfr.n_bars + yoffset]
self.ylim = ylim
def get_ith_bar_attrs(self, i: int) -> SimpleNamespace:
"""Prepares ith top columns and their respective attributes such as position, length, colors.
Not meant to be used outside animation update.
Parameters
----------
i : int
Animation frame index
Returns
-------
SimpleNamespace
bar_rank, bar_length, top_cols, column_colors
"""
bar_rank = self.dfr.df_ranks.iloc[i].values
top_cols = (bar_rank >= 1) & (bar_rank <= self.dfr.n_bars)
bar_rank = bar_rank[top_cols]
bar_length = self.dfr.data.iloc[i].values[top_cols]
cols = self.dfr.data.columns[top_cols]
colors = [self.column_colors[column] for column in cols]
return SimpleNamespace(
bar_rank=bar_rank,
bar_length=bar_length,
top_cols=cols,
column_colors=colors,
)
def _get_rounded_eges(
self,
) -> None:
"""Creates bar border properties.
See https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.patches.FancyBboxPatch.html
"""
border = self.bar_border_props
self.new_patches = []
for patch in reversed(self.ax.patches):
bb = patch.get_bbox()
color = patch.get_facecolor()
zorder = patch.zorder
p_bbox = FancyBboxPatch(
(bb.xmin, bb.ymin),
abs(bb.width),
abs(bb.height),
boxstyle=f"round,pad={border['pad']}"
+ (
f",rounding_size={border['radius']}"
if border["radius"] != None
else ""
),
ec=border["edge_color"],
fc=color,
mutation_aspect=border["mutation_aspect"],
zorder=zorder,
**border["kwargs"],
)
patch.remove()
self.new_patches.append(p_bbox)
def set_barh(self, bar_height: float = 0.86, **kwargs):
"""Sets barh properties, addition kwargs are passed to `ax.barh(**kwargs)`
Parameters
----------
bar_height : float, optional
Height of the bars (Note this is horizontal barplot), by default 0.86
"""
self.barh_props = {"height": bar_height, **kwargs}
def set_bar_annots(
self,
text_callback: Callable[[float], Union[str, float]] = lambda val: np.round(
val, 2
),
xoffset: float = 0.1,
yoffset: float = -0.1,
ha: str = "left",
**kwargs,
) -> None:
"""Sets bar annotation properties, additional kwargs are passed to `ax.text(**kwargs)`.
(Note these annotations are the texts near the bars)
Parameters
----------
text_callback : Callable[[float], Union[str, float]], optional
Callback function for customizing the text, by default lambda val:np.round(val, 2)
xoffset : float, optional
X offset relative to bar length, by default 0.1
yoffset : float, optional
Y offset relative to bar height, by default -0.1
ha : str, optional
Horizontal alignment, by default "left"
"""
self.bar_annot_props = {
"callback": text_callback,
"xoffset": xoffset,
"yoffset": yoffset,
"ha": ha,
"kwargs": kwargs,
}
def set_bar_border_props(
self,
edge_color: str = "k",
radius: float = 0.5,
pad: float = -0.0040,
mutation_aspect: float = 0.2,
**kwargs,
) -> None:
"""Sets bar border properties. Additional kwargs are passed to `FancyBboxPatch`.
See https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.patches.FancyBboxPatch.html
Parameters
----------
edge_color : str, optional
Bar edge color, by default "k"
radius : float, optional
Bar border radius, by default 0.5
pad : float, optional
See above link, by default -0.0040
mutation_aspect : float, optional
See above link, by default 0.2
"""
self.bar_border_props = {
"edge_color": edge_color,
"radius": radius,
"pad": pad,
"mutation_aspect": mutation_aspect,
"kwargs": kwargs,
}
def update(self, i: int) -> None:
"""FuncAnimation update
Parameters
----------
i : int
Animation frame
"""
self.ax.clear()
self.bar_attr = self.get_ith_bar_attrs(i)
self.ax.barh(
self.bar_attr.bar_rank,
self.bar_attr.bar_length,
tick_label=self.bar_attr.top_cols,
color=self.bar_attr.column_colors,
**self.barh_props,
)
if self.annot_bars
gitextract_lfc_djcb/
├── .github/
│ └── workflows/
│ ├── deploy.yml
│ ├── publish.yml
│ └── tests.yml
├── .gitignore
├── LICENSE
├── MANIFEST.in
├── README.md
├── docs/
│ ├── guide/
│ │ ├── dark_mode.md
│ │ ├── lineplot_darkmode.md
│ │ └── starter.md
│ ├── index.md
│ └── reference/
│ ├── barhplot.md
│ ├── barplot.md
│ ├── baseplot.md
│ ├── canvas.md
│ ├── datafiers/
│ │ ├── bar_datafier.md
│ │ ├── base_datafier.md
│ │ ├── datafier.md
│ │ └── line_datafier.md
│ ├── lineplot.md
│ └── utils.md
├── examples/
│ ├── __init__.py
│ ├── data/
│ │ ├── covid_IN.csv
│ │ ├── data.csv
│ │ ├── map.csv
│ │ └── sample.csv
│ ├── example1.py
│ ├── example2.py
│ ├── example3.py
│ ├── lineplot_dark1.py
│ └── lineplot_ex1.py
├── mkdocs.yml
├── pyproject.toml
├── requirements.txt
├── setup.py
├── src/
│ └── pynimate/
│ ├── __init__.py
│ ├── __init__.pyi
│ ├── bar.py
│ ├── barhplot.py
│ ├── baseplot.py
│ ├── canvas.py
│ ├── datafier.py
│ ├── lineplot.py
│ └── utils.py
└── tests/
├── __init__.py
├── conftest.py
├── data/
│ └── map.csv
├── test_bar.py
├── test_barhplot.py
├── test_baseplot.py
├── test_datafier.py
├── test_lineplot.py
└── test_utils.py
SYMBOL INDEX (133 symbols across 17 files)
FILE: examples/example2.py
function post (line 17) | def post(self, i):
FILE: examples/example3.py
function post_update (line 17) | def post_update(self, i):
FILE: examples/lineplot_dark1.py
function post (line 20) | def post(self, i):
FILE: src/pynimate/bar.py
class Barplot (line 13) | class Barplot:
method __init__ (line 14) | def __init__(
method add_var (line 150) | def add_var(self, row_var: pd.DataFrame = None, col_var: pd.DataFrame ...
method set_bar_color (line 175) | def set_bar_color(self, colors: Union[list, dict[str, str]]):
method set_axes (line 200) | def set_axes(self, ax: plt.Axes) -> None:
method set_xylim (line 210) | def set_xylim(
method getTopXY (line 242) | def getTopXY(self, i: int) -> SimpleNamespace:
method set_title (line 267) | def set_title(
method set_xlabel (line 305) | def set_xlabel(
method set_time (line 343) | def set_time(
method set_text (line 397) | def set_text(
method remove_text (line 455) | def remove_text(self, keys: list[str]):
method set_bar_border_props (line 466) | def set_bar_border_props(
method _get_rounded_eges (line 496) | def _get_rounded_eges(
method set_barh (line 526) | def set_barh(self, bar_height: float = 0.86, **kwargs):
method set_xticks (line 537) | def set_xticks(
method set_yticks (line 558) | def set_yticks(
method set_grid (line 579) | def set_grid(
method set_bar_annots (line 608) | def set_bar_annots(
method add_extras (line 640) | def add_extras(
method init (line 673) | def init(self) -> None:
method update (line 684) | def update(self, i: int) -> None:
FILE: src/pynimate/barhplot.py
class Barhplot (line 12) | class Barhplot(Baseplot):
method __init__ (line 13) | def __init__(
method from_df (line 78) | def from_df(
method set_xylim (line 104) | def set_xylim(
method get_ith_bar_attrs (line 135) | def get_ith_bar_attrs(self, i: int) -> SimpleNamespace:
method _get_rounded_eges (line 163) | def _get_rounded_eges(
method set_barh (line 195) | def set_barh(self, bar_height: float = 0.86, **kwargs):
method set_bar_annots (line 205) | def set_bar_annots(
method set_bar_border_props (line 237) | def set_bar_border_props(
method update (line 267) | def update(self, i: int) -> None:
FILE: src/pynimate/baseplot.py
class Baseplot (line 11) | class Baseplot:
method __init__ (line 12) | def __init__(
method from_df (line 84) | def from_df(
method generate_column_colors (line 108) | def generate_column_colors(self) -> dict[str, str]:
method set_column_decorations (line 136) | def set_column_decorations(
method set_column_colors (line 166) | def set_column_colors(self, colors: Union[str, list[str], dict[str, st...
method set_xylim (line 209) | def set_xylim(self, xlim: list[float] = [], ylim: list[float] = []):
method set_axes (line 237) | def set_axes(self, ax: plt.Axes) -> None:
method set_title (line 247) | def set_title(
method set_xlabel (line 285) | def set_xlabel(
method set_time (line 323) | def set_time(
method set_text (line 377) | def set_text(
method remove_text (line 435) | def remove_text(self, keys: Union[str, list[str]]):
method set_xticks (line 450) | def set_xticks(
method set_yticks (line 471) | def set_yticks(
method set_grid (line 492) | def set_grid(
method update (line 521) | def update(self, i):
FILE: src/pynimate/canvas.py
class Canvas (line 8) | class Canvas:
method __init__ (line 9) | def __init__(
method add_plot (line 47) | def add_plot(self, plot, index: tuple[int, int] = (0, 0)) -> __qualnam...
method _update (line 71) | def _update(self, i: int) -> None:
method animate (line 76) | def animate(
method save (line 102) | def save(self, filename: str, fps: int, extension: str = "gif", **kwar...
FILE: src/pynimate/datafier.py
class Datafier (line 8) | class Datafier:
method __init__ (line 9) | def __init__(
method add_var (line 89) | def add_var(self, row_var: pd.DataFrame = None, col_var: pd.DataFrame ...
method interpolate (line 115) | def interpolate(
method interpolate_even (line 129) | def interpolate_even(
method get_prepared_data (line 171) | def get_prepared_data(
method get_top_cols (line 221) | def get_top_cols(self) -> list[int]:
method get_bar_colors (line 233) | def get_bar_colors(self) -> dict[str, str]:
class BaseDatafier (line 254) | class BaseDatafier:
method __init__ (line 255) | def __init__(
method add_var (line 287) | def add_var(self, row_var: pd.DataFrame = None, col_var: pd.DataFrame ...
method interpolate_even (line 313) | def interpolate_even(
method interpolate_data (line 355) | def interpolate_data(self) -> pd.DataFrame:
class BarDatafier (line 366) | class BarDatafier(BaseDatafier):
method __init__ (line 367) | def __init__(
method interpolate_data (line 442) | def interpolate_data(self) -> pd.DataFrame:
method get_data_ranks (line 446) | def get_data_ranks(self, ip_frac: float = 0.1) -> pd.DataFrame:
method get_top_cols (line 487) | def get_top_cols(self) -> list[str]:
class LineDatafier (line 500) | class LineDatafier(BaseDatafier):
method __init__ (line 501) | def __init__(
method prepare_data (line 524) | def prepare_data(self) -> pd.DataFrame:
FILE: src/pynimate/lineplot.py
class Lineplot (line 11) | class Lineplot(Baseplot):
method __init__ (line 12) | def __init__(
method from_df (line 85) | def from_df(
method set_xylim (line 117) | def set_xylim(self, xlim: list[float] = [], ylim: list[float] = []):
method set_column_linestyles (line 139) | def set_column_linestyles(
method set_line (line 154) | def set_line(self, **kwargs) -> None:
method set_line_annots (line 162) | def set_line_annots(
method set_line_head (line 183) | def set_line_head(self, edgecolors: Union[str, list[str]] = "k", **kwa...
method set_marker (line 193) | def set_marker(self, **kwargs) -> None:
method set_legend (line 197) | def set_legend(self, **kwargs) -> None:
method update (line 201) | def update(self, i) -> None:
FILE: src/pynimate/utils.py
function human_readable (line 6) | def human_readable(num: Union[float, int], precision: int = 2, *args) ->...
FILE: tests/conftest.py
function sample_data1 (line 12) | def sample_data1() -> pd.DataFrame:
function sample_data2 (line 26) | def sample_data2() -> pd.DataFrame:
function sample_data1_basedfr (line 37) | def sample_data1_basedfr(sample_data1) -> BaseDatafier:
function sample_data1_bardfr (line 42) | def sample_data1_bardfr(sample_data1) -> BarDatafier:
function sample_data1_linedfr (line 47) | def sample_data1_linedfr(sample_data1) -> BarDatafier:
function map_data (line 52) | def map_data() -> pd.DataFrame:
FILE: tests/test_bar.py
function test_barplot_set_bar_color_list (line 7) | def test_barplot_set_bar_color_list(sample_data1):
function test_barplot_set_bar_color_dict (line 27) | def test_barplot_set_bar_color_dict(sample_data1):
function test_barplot_set_bar_color_error_length (line 40) | def test_barplot_set_bar_color_error_length(sample_data1):
function test_barplot_set_bar_color_error_col_mismatch (line 53) | def test_barplot_set_bar_color_error_col_mismatch(sample_data1):
function test_barplot_set_text_error_empty_text (line 67) | def test_barplot_set_text_error_empty_text(sample_data1):
function test_barplot_set_text_priority (line 73) | def test_barplot_set_text_priority(sample_data1):
function test_barplot_remove_text (line 79) | def test_barplot_remove_text(sample_data1):
FILE: tests/test_barhplot.py
function test_barhplot_xylim (line 4) | def test_barhplot_xylim(sample_data1_bardfr):
function test_barhplot_generate_column_colors (line 9) | def test_barhplot_generate_column_colors(map_data):
function test_barhplot_ith_bar_attrs (line 40) | def test_barhplot_ith_bar_attrs(sample_data1):
FILE: tests/test_baseplot.py
function test_baseplot_generate_column_colors (line 6) | def test_baseplot_generate_column_colors(sample_data1_basedfr):
function test_baseplot_set_column_colors_str (line 18) | def test_baseplot_set_column_colors_str(sample_data1_basedfr):
function test_baseplot_set_column_colors_list (line 31) | def test_baseplot_set_column_colors_list(sample_data1_basedfr):
function test_baseplot_set_column_colors_dict (line 52) | def test_baseplot_set_column_colors_dict(sample_data1_basedfr):
function test_baseplot_set_column_color_err_length (line 73) | def test_baseplot_set_column_color_err_length(sample_data1_basedfr):
function test_baseplot_set_column_color_err_col_mismatch (line 85) | def test_baseplot_set_column_color_err_col_mismatch(sample_data1_basedfr):
function test_baseplot_set_column_color_err_type (line 98) | def test_baseplot_set_column_color_err_type(sample_data1_basedfr):
function test_baseplot_xylim (line 114) | def test_baseplot_xylim(sample_data1_basedfr):
function test_baseplot_text_structure (line 122) | def test_baseplot_text_structure(sample_data1_basedfr):
function test_baseplot_set_text_error_empty_text (line 133) | def test_baseplot_set_text_error_empty_text(sample_data1_basedfr):
function test_baseplot_set_text_priority (line 139) | def test_baseplot_set_text_priority(sample_data1_basedfr):
function test_baseplot_remove_text (line 145) | def test_baseplot_remove_text(sample_data1_basedfr):
FILE: tests/test_datafier.py
function test_datafier_init (line 7) | def test_datafier_init(sample_data1):
function test_datafier_interpolate_even (line 12) | def test_datafier_interpolate_even(sample_data2):
function test_datafier_get_top_cols (line 37) | def test_datafier_get_top_cols(map_data):
function test_datafier_get_bar_colors (line 68) | def test_datafier_get_bar_colors(map_data):
function test_datafier_get_prepared_data (line 99) | def test_datafier_get_prepared_data(sample_data1):
function test_basedatafier_interpolate_even (line 153) | def test_basedatafier_interpolate_even(sample_data2):
function test_bardfr_init (line 178) | def test_bardfr_init(sample_data1):
function test_bardfr_df_ranks (line 183) | def test_bardfr_df_ranks(sample_data1):
function test_bardfr_get_top_cols (line 211) | def test_bardfr_get_top_cols(map_data):
FILE: tests/test_lineplot.py
function test_lineplot_linestyle (line 4) | def test_lineplot_linestyle(sample_data1_linedfr):
function test_lineplot_linestyle_dict (line 17) | def test_lineplot_linestyle_dict(sample_data1_linedfr):
FILE: tests/test_utils.py
function test_human_readable (line 4) | def test_human_readable():
function test_human_readable_k (line 8) | def test_human_readable_k():
function test_human_readable_m (line 12) | def test_human_readable_m():
Condensed preview — 53 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (363K chars).
[
{
"path": ".github/workflows/deploy.yml",
"chars": 515,
"preview": "name: ci \non:\n push:\n branches:\n - main\npermissions:\n contents: write\njobs:\n deploy:\n runs-on: ubuntu-late"
},
{
"path": ".github/workflows/publish.yml",
"chars": 792,
"preview": "name: Build distribution\non: [push, pull_request, workflow_dispatch]\n\njobs:\n deploy:\n runs-on: ubuntu-latest\n\n st"
},
{
"path": ".github/workflows/tests.yml",
"chars": 976,
"preview": "name: Tests\n\non:\n push:\n branches: [ main, dev ]\n pull_request:\n branches: [ main, dev ]\n\npermissions:\n content"
},
{
"path": ".gitignore",
"chars": 1890,
"preview": "legacy/*\n\nexamples/data/ccodes.csv\nexamples/data/cn_dict.csv \nexamples/data/data2.csv\nexamples/data/mapdata.csv \nexample"
},
{
"path": "LICENSE",
"chars": 1071,
"preview": "MIT License\n\nCopyright (c) 2022 Md Julkarnaeen\n\nPermission is hereby granted, free of charge, to any person obtaining a "
},
{
"path": "MANIFEST.in",
"chars": 17,
"preview": "include README.md"
},
{
"path": "README.md",
"chars": 1976,
"preview": "\n\n# Pynimate\n\n[\n\n# Pynimate\n[](https://pypi.o"
},
{
"path": "docs/reference/barhplot.md",
"chars": 397,
"preview": "# Barhplot\nSee Baseplot for inherited modules.\n## Barhplot\n::: pynimate.barhplot.Barhplot\n handler: python\n option"
},
{
"path": "docs/reference/barplot.md",
"chars": 599,
"preview": "# Barplot\n*Barplot is deprecated, use barhplot instead.*\n## Barplot\n::: pynimate.bar.Barplot\n handler: python\n opt"
},
{
"path": "docs/reference/baseplot.md",
"chars": 484,
"preview": "# Baseplot\n## Baseplot\n::: pynimate.baseplot.Baseplot\n handler: python\n options:\n docstring_style: numpy\n "
},
{
"path": "docs/reference/canvas.md",
"chars": 264,
"preview": "# Canvas\n## Canvas\n::: pynimate.canvas.Canvas\n handler: python\n options:\n docstring_style: numpy\n merge_"
},
{
"path": "docs/reference/datafiers/bar_datafier.md",
"chars": 278,
"preview": "# BarDatafier \n## BarDatafier\n::: pynimate.datafier.BarDatafier\n handler: python\n options:\n docstring_style: "
},
{
"path": "docs/reference/datafiers/base_datafier.md",
"chars": 305,
"preview": "# BaseDatafier \n## BaseDatafier\n::: pynimate.datafier.BaseDatafier\n handler: python\n options:\n docstring_styl"
},
{
"path": "docs/reference/datafiers/datafier.md",
"chars": 404,
"preview": "# Datafier\n*Datafier is deprecated, use plot specific datafiers instead.*\n## Datafier\n::: pynimate.datafier.Datafier\n "
},
{
"path": "docs/reference/datafiers/line_datafier.md",
"chars": 257,
"preview": "# LineDatafier \n## LineDatafier\n::: pynimate.datafier.LineDatafier\n handler: python\n options:\n docstring_styl"
},
{
"path": "docs/reference/lineplot.md",
"chars": 418,
"preview": "# Lineplot\nSee Baseplot for inherited modules.\n## Lineplot\n::: pynimate.lineplot.Lineplot\n handler: python\n option"
},
{
"path": "docs/reference/utils.md",
"chars": 205,
"preview": "# Helper Functions\n## Utils\n::: pynimate.utils\n handler: python\n options:\n docstring_style: numpy\n membe"
},
{
"path": "examples/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "examples/data/covid_IN.csv",
"chars": 14515,
"preview": "time,cases,cured\n2020-01-30,,0.0\n2020-01-31,0.0,0.0\n2020-02-01,1.0,0.0\n2020-02-02,1.0,0.0\n2020-02-03,0.0,0.0\n2020-02-04,"
},
{
"path": "examples/data/data.csv",
"chars": 17900,
"preview": "time,Abby Johnson,Abdul Aziz Al Ghurair,Abigail Johnson,Akira Mori,Alain & Gerard Wertheimer,Alain & Gerard Wertheim"
},
{
"path": "examples/data/map.csv",
"chars": 89644,
"preview": "time,Afghanistan,Angola,Albania,United Arab Emirates,Argentina,Armenia,Australia,Austria,Azerbaijan,Burundi,Belgium,Beni"
},
{
"path": "examples/data/sample.csv",
"chars": 139,
"preview": "time,Afghanistan,Angola,Albania,USA,Argentina\n1960-01-01,1.0,2.0,1.0,5.0,1.0\n1961-01-01,2.0,3.0,2.0,3.0,4.0\n1962-01-01,3"
},
{
"path": "examples/example1.py",
"chars": 575,
"preview": "import pandas as pd\nfrom matplotlib import pyplot as plt\n\nimport pynimate as nim\n\ndf = pd.DataFrame(\n {\n \"time"
},
{
"path": "examples/example2.py",
"chars": 1069,
"preview": "import os\n\nimport matplotlib as mpl\nimport matplotlib.ticker as tick\nimport pandas as pd\nfrom matplotlib import pyplot a"
},
{
"path": "examples/example3.py",
"chars": 2100,
"preview": "import os\n\nimport matplotlib as mpl\nimport numpy as np\nimport pandas as pd\nfrom matplotlib import pyplot as plt\n\nimport "
},
{
"path": "examples/lineplot_dark1.py",
"chars": 1692,
"preview": "import os\n\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nimport matplotlib.ticker as tick\nimport pandas as pd"
},
{
"path": "examples/lineplot_ex1.py",
"chars": 706,
"preview": "import os\n\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\nimport pynimate as nim\n\nfor sid"
},
{
"path": "mkdocs.yml",
"chars": 2146,
"preview": "# Project information\nsite_name: Pynimate\nsite_url: https://julkaar9.github.io/\nsite_author: julkar9\nsite_description: >"
},
{
"path": "pyproject.toml",
"chars": 1236,
"preview": "# pyproject.toml\n\n[build-system]\nrequires = [\"setuptools>=61.0.0\", \"wheel\"]\nbuild-backend = \"setuptools.build_meta\""
},
{
"path": "requirements.txt",
"chars": 3345,
"preview": "#\n# This file is autogenerated by pip-compile with python 3.9\n# To update, run:\n#\n# pip-compile --extra=dev pyproject"
},
{
"path": "setup.py",
"chars": 49,
"preview": "# setup.py\n\nfrom setuptools import setup\n\nsetup()"
},
{
"path": "src/pynimate/__init__.py",
"chars": 891,
"preview": "\"\"\"\nPynimate\n=====\nPython package for statistical data animations.\n\nAvailable Plots\n---------------\nBarhplot\n Horizon"
},
{
"path": "src/pynimate/__init__.pyi",
"chars": 432,
"preview": "from pynimate.bar import Barplot\nfrom pynimate.barhplot import Barhplot\nfrom pynimate.baseplot import Baseplot\nfrom pyni"
},
{
"path": "src/pynimate/bar.py",
"chars": 23970,
"preview": "import warnings\nfrom types import SimpleNamespace\nfrom typing import Callable, Union\n\nimport matplotlib.pyplot as plt\nim"
},
{
"path": "src/pynimate/barhplot.py",
"chars": 9812,
"preview": "from types import SimpleNamespace\nfrom typing import Callable, Union\n\nimport numpy as np\nimport pandas as pd\nfrom matplo"
},
{
"path": "src/pynimate/baseplot.py",
"chars": 16889,
"preview": "from typing import Callable, Union\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nimport seabor"
},
{
"path": "src/pynimate/canvas.py",
"chars": 3567,
"preview": "from typing import Callable\n\nimport matplotlib.animation as animation\nimport matplotlib.pyplot as plt\nimport numpy as np"
},
{
"path": "src/pynimate/datafier.py",
"chars": 18616,
"preview": "import warnings\n\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\n\n\nclass Datafier:\n def __init__(\n "
},
{
"path": "src/pynimate/lineplot.py",
"chars": 8430,
"preview": "from typing import Callable, Union\n\nimport matplotlib.dates as mdates\nimport pandas as pd\n\nfrom pynimate.baseplot import"
},
{
"path": "src/pynimate/utils.py",
"chars": 691,
"preview": "from typing import Union\n\nimport numpy as np\n\n\ndef human_readable(num: Union[float, int], precision: int = 2, *args) -> "
},
{
"path": "tests/__init__.py",
"chars": 31,
"preview": "import sys\nsys.path.append('.')"
},
{
"path": "tests/conftest.py",
"chars": 1293,
"preview": "import os\n\nimport pandas as pd\nimport pytest\n\nfrom pynimate.datafier import BarDatafier, BaseDatafier, LineDatafier\n\ndir"
},
{
"path": "tests/data/map.csv",
"chars": 89644,
"preview": "time,Afghanistan,Angola,Albania,United Arab Emirates,Argentina,Armenia,Australia,Austria,Azerbaijan,Burundi,Belgium,Beni"
},
{
"path": "tests/test_bar.py",
"chars": 2515,
"preview": "# Legacy tests for barplot, will be removed in 2.0.0\nimport pytest\n\nfrom pynimate.bar import Barplot\n\n\ndef test_barplot_"
},
{
"path": "tests/test_barhplot.py",
"chars": 2333,
"preview": "from pynimate.barhplot import Barhplot\n\n\ndef test_barhplot_xylim(sample_data1_bardfr):\n barhplot = Barhplot(sample_da"
},
{
"path": "tests/test_baseplot.py",
"chars": 4494,
"preview": "import pytest\n\nfrom pynimate.baseplot import Baseplot\n\n\ndef test_baseplot_generate_column_colors(sample_data1_basedfr):\n"
},
{
"path": "tests/test_datafier.py",
"chars": 7485,
"preview": "# Legacy tests for datafier, will be removed in 2.0.0\nimport pandas as pd\n\nfrom pynimate.datafier import Datafier, BaseD"
},
{
"path": "tests/test_lineplot.py",
"chars": 719,
"preview": "from pynimate.lineplot import Lineplot\n\n\ndef test_lineplot_linestyle(sample_data1_linedfr):\n plot = Lineplot(sample_d"
},
{
"path": "tests/test_utils.py",
"chars": 276,
"preview": "from pynimate.utils import human_readable\n\n\ndef test_human_readable():\n assert human_readable(20.2333) == \"20.23\"\n\n\nd"
}
]
About this extraction
This page contains the full source code of the julkaar9/pynimate GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 53 files (344.4 KB), approximately 146.9k tokens, and a symbol index with 133 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.