Metadata-Version: 2.1
Name: chart
Version: 0.2.2
Summary: chart
Home-page: https://github.com/maxhumber/chart
Author: Max Humber
Author-email: max.humber@gmail.com
License: MIT
Description: <h3 align="center">
          <img src="https://raw.githubusercontent.com/maxhumber/chart/master/images/logo.png" width="400px" alt="chart">
        </h3>
        <p align="center">
          <a href="https://opensource.org/licenses/MIT"><img alt="MIT" src="https://img.shields.io/github/license/maxhumber/chart.svg"></a>
          <a href="https://travis-ci.org/maxhumber/chart"><img alt="Travis" src="https://img.shields.io/travis/maxhumber/chart.svg"></a>
          <a href="https://pypi.python.org/pypi/chart"><img alt="PyPI" src="https://img.shields.io/pypi/v/chart.svg"></a>
          <a href="https://pypi.python.org/pypi/chart"><img alt="Downloads" src="https://img.shields.io/pypi/dm/chart.svg"></a>
        </p>
        
        A zero-dependency python package that prints basic charts to a Jupyter output
        
        Charts supported:
        
        - Bar graphs
        - Scatter plots
        - Histograms
        - 🍑📊👏
        
        #### Examples
        
        Bar graphs can be drawn quickly with the `bar` function:
        
        ```python
        from chart import bar
        
        x = [500, 200, 900, 400]
        y = ['marc', 'mummify', 'chart', 'sausagelink']
        
        bar(x, y)
        ```
        
        ```
               marc: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇             
            mummify: ▇▇▇▇▇▇▇                       
              chart: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
        sausagelink: ▇▇▇▇▇▇▇▇▇▇▇▇▇                              
        ```
        
        And the `bar` function can accept columns from a `pd.DataFrame`:
        
        ```python
        from chart import bar
        import pandas as pd
        
        df = pd.DataFrame({
            'artist': ['Tame Impala', 'Childish Gambino', 'The Knocks'],
            'listens': [8_456_831, 18_185_245, 2_556_448]
        })
        bar(df.listens, df.artist, width=20, label_width=11, mark='🔊')
        ```
        
        ```
        Tame Impala: 🔊🔊🔊🔊🔊🔊🔊🔊🔊           
        Childish Ga: 🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊🔊
         The Knocks: 🔊🔊🔊                                
        ```
        
        Histograms are just as easy:
        
        ```python
        from chart import histogram
        
        x = [1, 2, 4, 3, 3, 1, 7, 9, 9, 1, 3, 2, 1, 2]
        
        histogram(x)
        ```
        
        ```
        ▇        
        ▇        
        ▇        
        ▇        
        ▇ ▇      
        ▇ ▇      
        ▇ ▇      
        ▇ ▇     ▇
        ▇ ▇     ▇
        ▇ ▇   ▇ ▇
        ```
        
        And they can accept objects created by `scipy`:
        
        ```python
        from chart import histogram
        import scipy.stats as stats
        import numpy as np
        
        np.random.seed(14)
        n = stats.norm(loc=0, scale=10)
        
        histogram(n.rvs(100), bins=14, height=7, mark='🍑')
        ```
        
        ```
                    🍑              
                    🍑   🍑          
                    🍑 🍑 🍑          
                    🍑 🍑 🍑          
                🍑   🍑 🍑 🍑          
              🍑 🍑 🍑 🍑 🍑 🍑 🍑 🍑 🍑    
              🍑 🍑 🍑 🍑 🍑 🍑 🍑 🍑 🍑   🍑
        ```
        
        Scatter plots can be drawn with a simple `scatter` call:
        
        ```python
        from chart import scatter
        
        x = range(0, 20)
        y = range(0, 20)
        
        scatter(x, y)
        ```
        
        ```python
                                               •
                                           • •  
                                         •      
                                     • •        
                                 • •            
                               •                
                          •  •                  
                        •                       
                    • •                         
                • •                             
              •                                 
          • •                                   
        •                                       
        ```
        
        And at this point you gotta know it works with any `np.array`:
        
        ```python
        from chart import scatter
        import numpy as np
        
        np.random.seed(1)
        N = 100
        x = np.random.normal(100, 50, size=N)
        y = x * -2 + 25 + np.random.normal(0, 25, size=N)
        
        scatter(x, y, width=20, height=9, mark='^')
        ```
        
        ```
        ^^                  
         ^                  
            ^^^             
            ^^^^^^^         
               ^^^^^^       
                ^^^^^^^     
                    ^^^^    
                     ^^^^^ ^
                        ^^ ^
        ```
        
        In fact, all `chart` functions work with pandas, numpy, scipy and regular python objects.
        
        #### Preprocessors
        
        In order to create the simple outputs generated by `bar`, `histogram`, and `scatter` I had to create a couple of preprocessors, namely: `NumberBinarizer` and `RangeScaler`.
        
        I tried to adhere to the scikit-learn API in their construction. Although you won't need them to use `chart` here they are for your tinkering:
        
        ```python
        from chart.preprocessing import NumberBinarizer
        
        nb = NumberBinarizer(bins=4)
        x = range(10)
        nb.fit(x)
        nb.transform(x)
        ```
        
        ```
        [0, 0, 0, 1, 1, 2, 2, 3, 3, 3]
        ```
        
        ```python
        from chart.preprocessing import RangeScaler
        
        rs = RangeScaler(out_range=(0, 10), round=False)
        x = range(50, 59)
        rs.fit_transform(x)
        ```
        
        ```
        [0.0, 1.25, 2.5, 3.75, 5.0, 6.25, 7.5, 8.75, 10.0]
        ```
        
        #### Installation
        
        ```python
        pip install chart
        ```
        
        #### Contribute
        
        For feature requests or bug reports, please use [Github Issues](https://github.com/maxhumber/chart/issues)
        
        #### Inspiration
        
        I wanted a super-light-weight library that would allow me to quickly grok data. Matplotlib had too many dependencies, and Altair seemed overkill. Though I really like the idea of [termgraph](https://github.com/mkaz/termgraph), it didn't really fit well or integrate with my Jupyter workflow. Here's to `chart` 🥂 (still can't believe I got it on [PyPI](https://pypi.org/project/chart/))
        
Keywords: chart,plot,graph,print,visualize,visualization,vis,bar,histogram,scatter
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Artistic Software
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.6
Description-Content-Type: text/markdown
