[pstricks] [Fwd: Re: spider/radar chart]

Jean-Côme Charpentier Jean-Come.Charpentier at wanadoo.fr
Sat Mar 3 18:37:16 CET 2007


Herbert Voss a écrit (sur ctt) :
> Jean-Côme Charpentier schrieb (auf ctt?):
>> Jim a écrit :
>>> On Mar 2, 10:21 am, sic... at sicher.at wrote (on ctt):
>>>> hello,
>>>>
>>>> i'm looking for a source/package to draw a spider/radar chart
-http://en.wikipedia.org/wiki/Radar_chart
>>> Have you had a look at PS Tricks?
>>>   http://tug.org/PSTricks
>> There is also other tools for that, though I prefer PSTricks.
>>
>>> A lot of people like it for things like this.
>> Indeed! In fact, this problem was very funy. I tried something:

> [My example below]

> very nice ... :-)
> please do a cc to pstricks at tug.org for such examples.

Sure. no problem.

\documentclass{article}
\usepackage[a4paper,top=1.4cm,left=1cm,noheadfoot]{geometry}
\usepackage{pstricks}
\usepackage{multido}

\makeatletter
\newcounter{nbtarget}
% Empty the target
\newcommand*\radarreset{%
  \setcounter{nbtarget}{0}%
}
% Set one target.
\def\radarsetpoint(#1){%
  \@namedef{point@\the\c at nbtarget}{#1}%
  \stepcounter{nbtarget}%
  \ignorespaces
}

% Color serie for echo area (green to black)
\definecolorseries{echo}{rgb}{last}{green}{black}

\SpecialCoor

\def\radar(#1)#2#3#4{%
  % #1 center coordinates
  % #2 radar radius
  % #3 start angle for green area
  % #4 total angle of area
  % we use \psset => \begingroup...\endgroup
  \begingroup
  % All the picture is translated at (#1)
  \rput(#1){%
    % radar background (black circle)
    \pscircle*[linecolor=black](0,0){#2}
    % We use #4 colors from green to black
    \resetcolorseries[#4]{echo}%
    % Each color for a wedge of 1 degree.
    \multido{\i=#3+1}{#4}{%
      \rput{\i}(0,0){%
        \pswedge[fillstyle=solid,fillcolor=echo!!+,linestyle=none]
                (0,0){#2}{0}{1}
      }
    }%
    % Edge of echo area is white (more beautiful!)
    \psline[linecolor=white,linewidth=2pt](0,0)(#2;#3)
    % We display only the taget inside the echo area
    \begin{psclip}{\pswedge[linestyle=none](0,0){#2}{#3}{!#3 #4 add}}
    \multido{\i=0+1}{\the\c at nbtarget}{%
      \psdots[linecolor=white,dotstyle=*,dotsize=3pt]
             (\csname point@\i\endcsname)
    }
    \end{psclip}
    % Radar rules
    \psset{linecolor=blue,linewidth=1pt}
    \psline(-#2,0)(#2,0)
    \psline(0,-#2)(0,#2)
    % graduations 1/10
    \multido{\r=-0.9+0.1}{19}{%
      \psline(!#2 \r\space mul 0.1 neg)(!#2 \r\space mul 0.1)
      \psline(!0.1 neg #2 \r\space mul)(!0.1 #2 \r\space mul)
    }
    % it's all folk
  }
  \endgroup
  % No space after PSTricks object
  \ignorespaces
}
\makeatother

\pagestyle{empty}

\begin{document}
\radarsetpoint(-1,-3.2)
\radarsetpoint(-2,-1)
\radarsetpoint(-3,0.5)
\radarsetpoint(-1.5,1.8)
\radarsetpoint(-0.5,1)
\radarsetpoint(0.3,0.7)
\radarsetpoint(3,0.2)
\radarsetpoint(2,-1.5)
\begin{pspicture}(-4,-4)(14,22)
  \radar(0,18){4}{0}{150}
  \radar(10,18){4}{-30}{150}
  \radar(0,9){4}{-60}{150}
  \radar(10,9){4}{-90}{150}
  \radar(0,0){4}{-120}{150}
  \radar(10,0){4}{-150}{150}
\end{pspicture}
\newpage
\begin{pspicture}(-4,-4)(14,22)
  \radar(0,18){4}{-180}{150}
  \radar(10,18){4}{-210}{150}
  \radar(0,9){4}{-240}{150}
  \radar(10,9){4}{-270}{150}
  \radar(0,0){4}{-300}{150}
  \radar(10,0){4}{-330}{150}
\end{pspicture}
\radarreset % For a new set  :-)
% ...
\end{document}

  Jean-Côme Charpentier

-------------- next part --------------
An embedded message was scrubbed...
From: =?ISO-8859-1?Q?Jean-C=F4me_Charpentier?=
	<Jean-Come.Charpentier at wanadoo.fr>
Subject: Re: spider/radar chart
Date: Sat, 03 Mar 2007 17:11:16 +0100
Size: 3973
Url: http://tug.org/pipermail/pstricks/attachments/20070303/9165eae1/attachment.mht 


More information about the PSTricks mailing list