[Matplotlib-users] Need Expert Help - Radar Chart Axis Problem

Nicolas P. Rougier Nicolas.Rougier at inria.fr
Fri Oct 9 14:37:38 CEST 2015


> On 08 Oct 2015, at 03:52, JAL2 <fulmerj at seattleu.edu> wrote:
> 
> Hi:
> 
> I'm using matplotlib and Python 3.4 to create a Radar chart. I need an
> expert to help me with these things:
> 
> 1) I can't get the last axis or title at 2 o'clock to show up

You should use: self.angles = np.arange(90, 90+360, 360.0/self.n) % 360


> 2) I want to remove the gridlines between the axes so there are only ticks
> along each of the axes

Not sure what you mean exactly.


Nicolas


> 
> I'd greatly appreciate any feedback, even if you aren't an expert ;)
> 
> import numpy as np
> import pylab as pl
> import matplotlib.pyplot as py
> 
> class Radar(object):
> 
>    def __init__(self, fig, titles, labels, rect=None):
>        if rect is None:
>            rect = [0.05, 0.05, 0.95, 0.95]
> 
>        self.n = len(titles)
>        self.angles = np.arange(90, 90+360, 360.0/self.n)
>        self.axes = [fig.add_axes(rect, projection="polar", label="axes%d" %
> i) 
>                         for i in range(self.n)]
> 
>        self.ax = self.axes[0]
>        self.ax.set_thetagrids(self.angles, labels=titles, fontsize=12,
> weight="bold")
> 
>        for ax in self.axes[1:]:
>            ax.patch.set_visible(False)
>            ax.grid("on")
>            ax.xaxis.set_visible(False)
> 
>        for ax, angle, label in zip(self.axes, self.angles, labels):
>            ax.set_rgrids(range(1, 6), labels=label, angle=angle,
> fontsize=12)
>            ax.spines["polar"].set_visible(False)
>            ax.set_ylim(0, 6)          
> 
>    def plot(self, values, *args, **kw):
>        angle = np.deg2rad(np.r_[self.angles, self.angles[2]])
>        values = np.r_[values, values[0]]
>        self.ax.plot(angle, values, *args, **kw)
> 
> fig = pl.figure(figsize=(6, 10))
> 
> titles = [
>    "Canada", "Australia",
>    "New Zealand", "Japan", "China", "USA", "Mexico", "Finland"
> ]
> 
> labels = [
>    list("abcde"), list("12345"), list("uvwxy"), 
>    ["one", "two", "three", "four", "five"],
>    list("jklmn"), list("asdfg"), list("qwert"), [" ", "4.3", "4.4", "4.5",
> "4.6"]
> ]
> 
> radar = Radar(fig, titles, labels)
> radar.plot([1, 3, 2, 5, 4, 5, 3, 3],  "--", lw=1, color="b", alpha=.5,
> label="USA 2014")
> radar.plot([2.3, 2, 3, 3, 2, 3, 2, 4],"-", lw=1, color="r", alpha=.5,
> label="2014")
> radar.plot([3, 4, 3, 4, 2, 2, 1, 3], "-", lw=1, color="g", alpha=.5,
> label="2013")
> radar.plot([4, 5, 4, 5, 3, 3, 4, 4], "-", lw=1, color="y", alpha=.5,
> label="2012")
> 
> radar.ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.10),
>          fancybox=True, shadow=True, ncol=4)
> 
> fig = py.gcf()
> fig.set_size_inches(6, 10, forward=True)
> fig.savefig('test2png.png', dpi=100, bbox_inches="tight", pad_inches=1)
> 
> 
> 
> --
> View this message in context: http://matplotlib.1069221.n5.nabble.com/Need-Expert-Help-Radar-Chart-Axis-Problem-tp46286.html
> Sent from the matplotlib - users mailing list archive at Nabble.com.
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users



More information about the Matplotlib-users mailing list