Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

What would be the best way of drawing a political spectrum diagram like this one:


share|improve this question
Definitely TikZ, check texample.net/tikz/examples for a suitable starting point. –  Uwe Ziegenhagen Nov 30 '12 at 17:11

4 Answers 4

up vote 10 down vote accepted

enter image description here




\put(10,100){\makebox(0,0)[r]{\rotatebox{90}{\textsc{Picture Mode}}}}

share|improve this answer
I should add that apart from giving a bias towards picture mode, the placement of the other packages is arbitrary:-) –  David Carlisle Nov 30 '12 at 17:25
Thank you, this is perfect. –  ℝaphink Nov 30 '12 at 22:48
Shouldn't the adjectives be on the lines and the packages be in the boxes? –  asmeurer Dec 1 '12 at 3:29
How is it possible to automatically scale this image to the page? –  ℝaphink Dec 1 '12 at 8:29
@asmeurer you'd better vote for Jake's version:-) –  David Carlisle Dec 1 '12 at 11:36

An option using the positioning library from tikz



\begin{tikzpicture}[node distance=5cm]
  \node(origin) at (0,0){};
  % nodes on horizontal and vertical
  \node(freedom)[above=of origin]{FREEDOM};
  \node(authority)[below=of origin]{AUTHORITY};
  \node(equality)[left=of origin]{\rotatebox{90}{EQUALITY}};
  \node(inequality)[right=of origin]{\rotatebox{-90}{INEQUALITY}};
  % nodes on diagonals
  \node(socdemo)[above left=3cm of origin]{Social democracy};
  \node(classlib)[above right=3cm of origin]{Classical liberalism};
  \node(facism)[below right=3cm of origin]{Facism};
  \node(facism)[below left=3cm of origin]{Communism};
  % connect horizontal and vertical nodes
share|improve this answer

I would (of course) use PGFPlots for this. Once the axis is set up, you can add your data in a really easy and clear way:

Difficulty Clarity Package
0.8        0.6     PSTricks
0.6        0.8     TikZ


    xmin=-1, xmax=1,
    ymin=-1, ymax=1,
    axis equal image,
    xtick=\empty, ytick=\empty,
    axis lines*=middle,
    after end axis/.code={
        \node at (current axis.right of origin) [anchor=west] {Easy};
        \node at (current axis.left of origin) [anchor=east] {Hard};
        \node at (current axis.above origin) [anchor=south] {Clear};
        \node at (current axis.below origin) [anchor=north] {Obscure};

\addplot [
    nodes near coords, 
    only marks, 
    point meta=explicit symbolic
] table [meta=Package] {
    Difficulty Clarity Package
    0.8 0.6 PSTricks
    0.6 0.8 TikZ
share|improve this answer
I suppose I'd better give you +1 :-) –  David Carlisle Nov 30 '12 at 18:39

This is quite straightforward with »tikZ/PGF«.


    \draw (0,6)  node[above]                 {Freedom}  -- (0,-6) node[below]                 {Authority}
          (-6,0) node[xshift=-6pt,rotate=90] {Equality} -- (6,0)  node[xshift=6pt,rotate=-90] {Inequality};
    \node at (-3,3) {Social Democracy};
    \node at (3,3) {Classical Liberalism};
    \node at (-3,-3) {Communism};
    \node at (3,-3) {Facism};

enter image description here

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.