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:

example

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

4 Answers

up vote 10 down vote accepted

enter image description here

\documentclass{article}

\usepackage{graphics}

\begin{document}

\fbox{\begin{picture}(200,200)
\thicklines
\put(100,10){\line(0,1){180}}
\put(10,100){\line(1,0){180}}
\put(100,190){\makebox(0,0)[b]{\textsc{TiKZ}}}
\put(100,10){\makebox(0,0)[t]{\textsc{PsTricks}}}
\put(10,100){\makebox(0,0)[r]{\rotatebox{90}{\textsc{Picture Mode}}}}
\put(190,100){\makebox(0,0)[l]{\rotatebox{-90}{\textsc{MetaPost}}}}
\put(50,150){\makebox(0,0){Easy}}
\put(150,150){\makebox(0,0){Hard}}
\put(50,50){\makebox(0,0){Clear}}
\put(150,50){\makebox(0,0){Obscure}}

\end{picture}}
\end{document}
share|improve this answer
2  
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
1  
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
show 1 more comment

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

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    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, 
    mark=*, 
    only marks, 
    point meta=explicit symbolic
] table [meta=Package] {
    Difficulty Clarity Package
    0.8 0.6 PSTricks
    0.6 0.8 TikZ
};
\end{axis}
\end{tikzpicture}
\end{document}
share|improve this answer
1  
I suppose I'd better give you +1 :-) –  David Carlisle Nov 30 '12 at 18:39
add comment

This is quite straightforward with »tikZ/PGF«.

\documentclass[11pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage{tikz}

\begin{document}
  \begin{tikzpicture}
    \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};
  \end{tikzpicture}
\end{document}

enter image description here

share|improve this answer
add comment

An option using the positioning library from tikz

screenshot

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\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
  \draw(equality)--(inequality);
  \draw(freedom)--(authority);
\end{tikzpicture}
\end{document}
share|improve this answer
add comment

Your Answer

 
discard

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.