Code Monkey home page Code Monkey logo

py-roughviz's Introduction

py-roughviz

Package Version build Contributions welcome License

This is the Python wrapper of the JaveScript Library RoughViz which you could use to visualize sketchy/hand-drawn styled charts. You could check out original JS libarary here: RoughViz

Implemented Charts

Currently, there are seven types of charts available on JS RoughViz project, and I implemented all of them:

  • Bar
  • Barh
  • Pie
  • Line
  • Scatter
  • Donut
  • StackedBar

Before Use it

  • Cloning: If you clone the repo, please install the dependencies in order to use them, and simply do below if you are using pip.
pip install -r requirements.txt
  • Downloading the pakcage: This package is also available on PyPi, so you could do below to download the package
pip install py-roughviz

How to use it

Due to design of original RoughViz, there are some restrictions on the format of input data. The detailed description can be found in the documentation.

To use the tool, you could either define all options during chart in the initialization, or to define the options later. And in order to make it easier to use, there are several options provided.

  1. You could define all options using set_options
  2. For common options shared across different charts, you could define it in a more intuitive way, e.g. set_title(title="The plot", fontsize=2), or set_xlabel("X Label", fontsize=3)

Currently available options are:

  • set_options: this can be used to set all available options for charts
  • set_title: this can be used to set title and title fontsize
  • set_xlabel: this can be used to set xlabel and its fontsize
  • set_ylabel: this can be used to set ylabel and its fontsize
  • set_figsize: this can be used to set the figsize for plots
  • set_legend: this can be used to determine if legend is presented, and if so, which position to put legend

Pandas DataFrame is accepted as input data

One of major characters of this package is you could take pandas DataFrame as data type (this is not available in original JS tool), and this feature could make people use this in a more familiar way, similar to seaborn.

Currently, plot types below are supported to take pandas DataFrame as input data:

  • Barh
  • Bar
  • Scatter
  • Pie
  • Donut

For example:

import pandas as pd
from roughviz.charts import Pie, Scatter

df = pd.DataFrame({"a": ["a", "b"], "b": [1, 2], "c": [2, 3]})

# pie plot
pie = Pie(data=df, labels="a", values="b")

# scatter plot
scatter = Scatter(data=df, x="b", y="c")

Examples

  • Example 1
from roughviz.charts import Line

line = Line(data="examples/example_datasets/vis1.csv", y1="a", y2="b", y3="c")
line.set_legend(legend_position="left")
line.set_title("Line Plot", fontsize=2)
line.set_options(colors=["tan", "orange", "coral"])

line.show()

Example 1

  • Example 2
from roughviz.charts import Bar

data = {
    "labels": ["North", "South", "East", "West"],
    "values": [10, 5, 8, 3]
}

bar = Bar(data=data, title="Regions", title_fontsize=3)
bar.set_xlabel("Region", fontsize=2)
bar.set_ylabel("Number", fontsize=2)

bar.show()

Example 2

py-roughviz's People

Contributors

charlesdong1991 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

py-roughviz's Issues

[BUG] FileNotFoundError when running examples

When running example 2 I get:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/dean/anaconda3/envs/env/lib/python3.7/site-packages/roughviz/render/templates/jupyter_notebook.html'```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.