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
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
- 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
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.
- You could define all options using
set_options
- 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)
, orset_xlabel("X Label", fontsize=3)
Currently available options are:
set_options
: this can be used to set all available options for chartsset_title
: this can be used to set title and title fontsizeset_xlabel
: this can be used to set xlabel and its fontsizeset_ylabel
: this can be used to set ylabel and its fontsizeset_figsize
: this can be used to set the figsize for plotsset_legend
: this can be used to determine if legend is presented, and if so, which position to put legend
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")
- 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 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()