I wanted to list my test-file such that everybody can profit from my recherche.
This contains different approaches from the above and other answers (see this and that) to achieve the various blip-forms.
results in:
\documentclass[border=3mm]{standalone}
\usepackage{
tikz,
pgfplots
}
\usetikzlibrary{
backgrounds,
calc,
shapes.geometric, % regular polygon shape
decorations.markings, % halo
decorations.text % text along path
}
\pgfplotsset{compat=1.15}
\usepgfplotslibrary{polar}
% https://tex.stackexchange.com/questions/495067/dashed-trajectory-encircling-two-segments/495140comment1252594_495140
\newcounter{halo}
\tikzset{
record path/.style={
/utils/exec=\tikzset{halo pars/.cd,#1},
decorate,
decoration={
markings,
mark=at position 0 with
{
\setcounter{halo}{1}%\typeout{\pgfdecoratedpathlength}
\path
(0pt,{\pgfkeysvalueof{/tikz/halo pars/dist}})
coordinate (halo-L-\number\value{halo})
(0pt,{-1*\pgfkeysvalueof{/tikz/halo pars/dist}})
coordinate (halo-R-\number\value{halo})
({-\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)},{-\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)})
coordinate (halo-A-1)
({-\pgfkeysvalueof{/tikz/halo pars/dist}},{0pt})
coordinate (halo-A-2)
({-\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)},{\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)})
coordinate (halo-A-3);
%
\pgfmathsetmacro{%
\mystep%
}{%
(\pgfdecoratedpathlength-2*\pgfkeysvalueof{/tikz/halo pars/step})/int(1+(\pgfdecoratedpathlength-2*\pgfkeysvalueof{/tikz/halo pars/step})/\pgfkeysvalueof{/tikz/halo pars/step})%
}
%
\xdef\mystep{\mystep}
},
mark=between positions
\pgfkeysvalueof{/tikz/halo pars/step}
and
{\pgfdecoratedpathlength-\pgfkeysvalueof{/tikz/halo pars/step}}
step
\mystep pt
with {
\stepcounter{halo}
\path
(0pt,{\pgfkeysvalueof{/tikz/halo pars/dist}})
coordinate (halo-L-\number\value{halo})
(0pt,{-1*\pgfkeysvalueof{/tikz/halo pars/dist}})
coordinate (halo-R-\number\value{halo});
},
mark=at position 1 with {
\stepcounter{halo}
%
\path
(0pt,{\pgfkeysvalueof{/tikz/halo pars/dist}})
coordinate (halo-L-\number\value{halo})
(0pt,{-1*\pgfkeysvalueof{/tikz/halo pars/dist}})
coordinate (halo-R-\number\value{halo})
({\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)},{\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)})
coordinate (halo-B-1)
({\pgfkeysvalueof{/tikz/halo pars/dist}},{0pt})
coordinate (halo-B-2)
({\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)},{-\pgfkeysvalueof{/tikz/halo pars/dist}/sqrt(2)})
coordinate (halo-B-3);
%
\xdef\LstHaloCoords{(halo-A-1) (halo-A-2) (halo-A-3)}
%
\foreach \XX in {1,...,\number\value{halo}}
{
\xdef\LstHaloCoords{\LstHaloCoords\space (halo-L-\XX)}
}
%
\xdef\LstHaloCoords{\LstHaloCoords\space (halo-B-1) (halo-B-2) (halo-B-3)}
%
\foreach \XX in {\number\value{halo},\the\numexpr\number\value{halo}-1,...,1}
{
\xdef\LstHaloCoords{\LstHaloCoords\space (halo-R-\XX)}
}
}
}
},
halo/.style={
insert path={
plot[smooth,samples at={1,...,\number\value{bracep}},variable=\x] (bracep-\x)
}
},
halo/.style={
insert path={
plot[smooth cycle] coordinates {\LstHaloCoords}
}
},
halo pars/.cd,
dist/.initial = 4pt,
step/.initial = 2pt
}
% https://tex.stackexchange.com/questions/66216/draw-arc-in-tikz-when-center-of-circle-is-specified/66220#66220
\def\centerarc[#1](#2)(#3:#4:#5)% Syntax: [draw options] (center) (initial angle:final angle:radius)
{%
\draw[#1] ($(#2)+({#5*cos(#3)},{#5*sin(#3)})$) arc (#3:#4:#5);%
}
\def\centerarcpolar[#1](#2,#3)(#4:#5)% Syntax: [draw options] (center, radiushelper) (initial angle:final angle:radius)
{%
\draw[#1]%
let \p1=($(#3)-(#2)$),\n1={veclen(\x1,\y1)} in %
($(#2)+({\n1*cos(#4)},{\n1*sin(#4)})$) arc (#4:#5:\n1);%
}
\def\centerarcpolarpath[#1](#2,#3)(#4:#5)% Syntax: [draw options] (center, radiushelper) (initial angle:final angle:radius)
{%
\path[#1]%
let \p1=($(#3)-(#2)$),\n1={veclen(\x1,\y1)} in %
($(#2)+({\n1*cos(#4)},{\n1*sin(#4)})$) arc (#4:#5:\n1);%
}
\usepackage{filecontents}
\begin{filecontents*}{test_radar.csv}
angle,radius,scale,class,name,color
270, 9, 3/5 * 3/2 + 1/2, 1, a, orange
338, 3, 3/5 * 3/2 + 1/2, 2, b, lightgray
262, 6, 3/5 * 3/2 + 1/2, 3, c, green
0, 10, 3/5 * 3/2 + 1/2, 2, d, lightgray
136, 5, 3/5 * 3/2 + 1/2, 4, e, red
78, 7.5, 3/5 * 3/2 + 1/2, 1, f, blue
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
width = 8cm,
height = 8cm,
xmin = 0,
xmax = 360,
ymin = 0,
ymax = 10,
ytick = {0,3,...,10},
xticklabels=\empty,
rotate=-30,
visualization depends on={value \thisrow{name} \as \labelname},
visualization depends on={value \thisrow{scale} \as \labelscale},
visualization depends on={value \thisrow{color} \as \labelcolor}
]
\addplot[
scatter/classes={
1={
mark = text,
text mark as node = true,
text mark = \labelname,
text mark style={
circle,
fill opacity = 0.5,
draw = black,
fill = \labelcolor,
scale = \labelscale,
inner sep = 2pt,
draw
}
},
2={
mark = text,
text mark as node = true,
text mark = \labelname,
text mark style={
circle,
draw = black,
fill = \labelcolor,
scale = \labelscale,
inner sep = 0.6pt,
line width = 1.4pt,
font = \tiny\bfseries,
draw
}
},
3={
mark = text,
text mark as node = true,
text mark = \labelname,
text mark style = {
rectangle,
draw = black,
fill = \labelcolor,
scale = \labelscale,
inner sep = 1pt,
outer sep = 2pt,
draw
}
},
4={
mark = text,
text mark as node = true,
text mark = \labelname,
text mark style = {
regular polygon,
regular polygon sides=3,
draw = black,
fill = \labelcolor,
scale = \labelscale,
inner sep = 1pt,
outer sep = 2pt,
draw
}
}
},
scatter,
draw=none,
scatter src=explicit symbolic
]
table[
x = angle,
y = radius,
meta = class,
col sep = comma
]{test_radar.csv};
\path % segment radii
(0,0) coordinate (aux0)
(0,3) coordinate (aux1)
(0,6) coordinate (aux2)
(0,8) coordinate (aux3)
(0,10) coordinate (aux4);
\path
(0,0) coordinate (start)
(0,7) coordinate (strechedBradius)
(0,8.5) coordinate (strechedC)
(0,3) coordinate (strechedD)
;
% streched blips
% https://tex.stackexchange.com/questions/495067/dashed-trajectory-encircling-two-segments/495140 #comment1252594_495140
\newcommand{\strechedA}{(50,3) -- (50,8)}
\draw[line cap=round, line width=3mm] \strechedA;
\draw[line cap=round, lightgray, line width=2.5mm] \strechedA;
% halo stuff
\path[thick,postaction={record path={step=10pt}}] (300,2) -- (300,6) ;
\draw[red, halo]
node[
xshift=3ex,
yshift=-4ex,
draw,
black,
fill=white,
inner sep=1pt
] {\tiny test1};
\end{polaraxis}
\begin{scope}[
on background layer
]
\foreach \X [evaluate=\X as \GrayLevel using {int(10+8*(4-\X))}]in {4,3,2,1}
\path
let \p1=($(aux\X)-(aux0)$),\n1={veclen(\x1,\y1)} in
[fill=gray!\GrayLevel] (aux0) circle[radius=\n1];
\draw[white,line width=4pt]
let \p1=($(aux4)-(aux0)$),\n1={veclen(\x1,\y1)} in
(aux0) -- ($(aux0)+(0:\n1)$) coordinate (auy0)
(aux0) -- ($(aux0)+(120:\n1)$) coordinate (auy1)
(aux0) -- ($(aux0)+(240:\n1)$) coordinate (auy2)
;
\def\mymoveup#1{\raisebox{2.5ex}}
\centerarcpolarpath[
postaction={
decorate,
decoration={
text along path,
text align = center,
reverse path, % for flipping
text = {
|\mymoveup|
sector one
}
}
}
](aux0,auy1)(0:60);
\end{scope}
\node[purple, ultra thick] at (aux0) {x};
\node[red, ultra thick] at (aux1) {x};
\centerarcpolar[very thick, green, dashed](aux0,aux1)(45:140);
\newcommand{\strechedBa}{160};
\newcommand{\strechedBb}{215};
\centerarcpolar[line cap=round, line width=3mm](aux0,strechedBradius)(\strechedBa:\strechedBb);
\centerarcpolar[line cap=round, lightgray, line width=2.5mm](aux0,strechedBradius)(\strechedBa:\strechedBb);
% halo stuff
\centerarcpolar[
](aux0,strechedC)(90:120);
\centerarcpolar[
very thick, green, dashed,
draw=none,
postaction={%
record path={step=10pt}
}
](aux0,strechedC)(90:120);
\draw[red, halo]
node[
xshift=-2ex,
yshift=-1ex,
draw,
black,
fill=white,
inner sep=1pt
] {\tiny test2};
\centerarcpolarpath[
postaction={record path={step=10pt}}
](aux0,strechedD)(200:270);
\draw[
halo,
red
]
node[
xshift=3ex,
yshift=-2.5ex,
draw,
black,
fill=white,
inner sep=1pt
] {\tiny test3};
\end{tikzpicture}
\end{document}
csv
-file or something similar like in three in order to make it easily reproducible/ adjustable ?