Seaborn-style utility to plot spider charts
Project description
spiderplot
Python package to create 2D spider charts.
The spider chart is a type of relational graph y=f(x). The implementation is based on seaborn's lineplot() using a polar coordinate system.
Installation
The package can be installed via pip:
pip install spiderplot
Use the following commands for a quick verification of the installation.
python -c "import spiderplot; print(spiderplot.__version__)"
python -c "import spiderplot; spiderplot.demo_pair()"
Usage
Similar to seaborn functions, spiderplot accepts different data formats:
- array mode:
spiderplot(x=x, y=y)
withx
,y
(and other parameters) being sequences - long-form mode:
spiderplot(x=x, y=y, ..., data=data)
withdata
being a DataFrame and the other parameters (x, y, hue, size, extent) being keys ofdata
- wide-form mode:
spiderplot(data)
withdata
being a DataFrame, using the following mapping:
x
are the row indices (data.index
)
y
are the table values (data.values
) every column ofdata
represents a different category of the plot.
See this tutorial about data structures in seaborn for further details.
To print the help text of the function:
import spiderplot as sp
help(sp.spiderplot)
help(sp.spiderplot_facet)
See the examples for further usage information.
Basic example
import seaborn as sns
import spiderplot as sp
import matplotlib.pyplot as plt
sns.set_style("whitegrid")
# Load some demo data.
df = sp.demo.generate_data(mode="long-form", d=1)
# Create spider plot.
ax = sp.spiderplot(x="x", y="value", hue="dataset", legend=False,
data=df, palette="husl", rref=0)
# Adjust limits in radial direction.
ax.set_rlim([-1.4,1.4])
plt.show()
Multiple plots
df = sp.demo.generate_data_pair(mode="long-form")
sns.set_style("whitegrid")
ax = sp.spiderplot(x="x", y="value", hue="dataset", style="dataset",
data=df, dashes=False, palette="husl", rref=0)
ax.set_rlim([-1.4,1.4])
ax.legend(loc="upper right",
bbox_to_anchor=(1.4, 1.),
borderaxespad=0.)
plt.tight_layout()
plt.show()
Data aggregation
df = sp.demo.generate_data(mode="long-form", n=24, d=10)
means = df.groupby("x")["value"].mean()
stds = df.groupby("x")["value"].std()
sns.set_style("whitegrid")
ax = sp.spiderplot(y=means, extent=stds, color="red", fillcolor="gray",
fill=False, rref=0, label="mean ± std")
ax.set_rlim([-1.4,1.4])
ax.legend(loc="upper right",
bbox_to_anchor=(1.4, 1.),
borderaxespad=0.)
plt.tight_layout()
plt.show()
Requirements
Python>=3.6
numpy
pandas>=0.22
matplotlib>=3.0
seaborn>=0.9
Project setup
git clone https://github.com/hirsch-lab/spider-chart.git
cd spider-chart
pip install -r requirements.txt
# Run examples
./examples/run_all.py
# Build package
python setup.py sdist bdist_wheel
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
spiderplot-0.1.2.tar.gz
(24.3 MB
view details)
File details
Details for the file spiderplot-0.1.2.tar.gz
.
File metadata
- Download URL: spiderplot-0.1.2.tar.gz
- Upload date:
- Size: 24.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 772cc3920ac23e23e7caf1f9fa35fa64fe08d9879757950e80a69bc686521852 |
|
MD5 | c5362f705c7596b09a019f5f821cfbfb |
|
BLAKE2b-256 | a5cd5e91772fa0f3ad30808c0e2ed0af862821157963c20463c129a7ea81159f |