I usually do not add two answers, but this is a very different strategy than the other one. It uses groupplots, and is based on pgfplots, so highly customizable. All you need to do is to specify the data in a table such as
CB PCB UNR GDP
1 2 3 4
1.5 2.5 1.5 2.5
2 3 2.5 3.5
4 3 2 1
and the code will do the rest such as extracting the column names, finding the ranges, and producing the plots.
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.17}
\pgfplotsset{% https://tex.stackexchange.com/a/75811/121799
name nodes near coords/.style={nodes near coords={},
every node near coord/.append style={anchor=center,coordinate,
name=#1-\coordindex,
alias=#1-last,
},
},
name nodes near coords/.default=coordnode
}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread{
CB PCB UNR GDP
1 2 3 4
1.5 2.5 1.5 2.5
2 3 2.5 3.5
4 3 2 1
}{\loadedtable}
\edef\mystyles{"solid","dashed","red","orange","blue"}
\pgfplotstableforeachcolumn\loadedtable\as\col{%
\ifcase\pgfplotstablecol
\edef\mycolA{\col}%
\or
\edef\mycolB{\col}%
\or
\edef\mycolC{\col}%
\or
\edef\mycolD{\col}%
\or
\fi}
\pgfplotstablegetrowsof{\loadedtable}%
\pgfmathtruncatemacro{\numrows}{\pgfplotsretval-1}%
\begin{groupplot}[
group style={group name=top,group size=2 by 2,
horizontal sep=0pt,vertical sep=0pt},height=4cm,width=4cm]
\nextgroupplot[xtick=\empty,yticklabel pos=lower,ylabel=\mycolA,
enlarge y limits=0.3,xmin=-1,xmax=0]
\addplot[only marks,name nodes near coords=\mycolA]
table[y expr=\thisrow{\mycolA},x expr=0] {\loadedtable};
\nextgroupplot[ytick=\empty,xticklabel pos=upper,xlabel=\mycolB,
enlarge x limits=0.3,ymax=1,ymin=0]
\addplot[only marks,name nodes near coords=\mycolB]
table[x expr=\thisrow{\mycolB},y expr=0] {\loadedtable};
\nextgroupplot[ytick=\empty,xticklabel pos=lower,xlabel=\mycolC,
enlarge x limits=0.3,ymax=0,ymin=-1,
xticklabel={\pgfmathparse{-1*\tick}\pgfmathprintnumber\pgfmathresult}]
\addplot[only marks,name nodes near coords=\mycolC]
table[x expr=-1*\thisrow{\mycolC},y expr=0] {\loadedtable};
\nextgroupplot[xtick=\empty,yticklabel pos=upper,ylabel=\mycolD,
enlarge y limits=0.3,xmin=0,xmax=1,
yticklabel={\pgfmathparse{-1*\tick}\pgfmathprintnumber\pgfmathresult}]
\addplot[only marks,name nodes near coords=\mycolD]
table[y expr=-1*\thisrow{\mycolD},x expr=0] {\loadedtable};
\end{groupplot}
\foreach \X in {0,...,\numrows}
{\pgfmathsetmacro{\mystyle}{{\mystyles}[\X]}
\draw[style/.expanded=\mystyle]
(\mycolA-\X) -- (\mycolB-\X) -- (\mycolD-\X) -- (\mycolC-\X) -- cycle;}
\end{tikzpicture}
\end{document}

EDIT: Fixed an error in the tick labels of the axes pointing to the left or down.
tkz-kiviat. – rickhg12hs Jun 03 '20 at 02:52