I don't think pgfplots
have anything like that built-in. One can do it manually, as in the example below, by reading the values from the table with the macros from pgfplotstable
, and using plain old TikZ to draw the diagram. I got the method for extracting a color from a colormap from https://tex.stackexchange.com/a/340346.
\documentclass{standalone}
\usepackage{xfp}
\usepackage{pgfplotstable}
\usepackage{filecontents}
\def\mydata{mydata.csv}
\begin{filecontents*}{\mydata}
x,y,z
-80,5,0
-60,6,1
-40,2,2
-20,7,3
0,5,4
20,3,5
40,7,6
60,3,7
80,4,8
\end{filecontents*}
\pgfplotstableread[col sep=comma]{\mydata}\loadedtable
\begin{document}
\begin{tikzpicture}[
% radii are normalized to [0,1], so the scale will in effect set the radius of the longest slice
scale=5,
% from https://tex.stackexchange.com/a/340346
% Defines the colormap
/pgfplots/colormap/viridis,
slice/.style={/utils/exec={
% Defines a color "mapped color"
\pgfplotscolormapdefinemappedcolor{#1}},
fill=mapped color
}
]
% define half angle step
\pgfmathsetmacro\Dhalf{10}
% get number of data rows in table
\pgfplotstablegetrowsof{\mydata}
\pgfmathtruncatemacro{\Nrows}{\pgfplotsretval-1}
% find min/max of z-column
\pgfmathsetmacro\ZMax{-1e3}
\pgfmathsetmacro\ZMin{1e3}
% https://tex.stackexchange.com/a/252360/
\pgfplotstableforeachcolumnelement{z}\of\loadedtable\as\cellValue{\pgfmathsetmacro{\ZMax}{max(\ZMax,\cellValue)}}
\pgfplotstableforeachcolumnelement{z}\of\loadedtable\as\cellValue{\pgfmathsetmacro{\ZMin}{min(\ZMin,\cellValue)}}
% calculate range of z-values
\pgfmathsetmacro\Zrange{\ZMax-\ZMin}
% find max radius
\pgfmathsetmacro\RMax{0}
\pgfplotstableforeachcolumnelement{y}\of\loadedtable\as\cellValue{\pgfmathsetmacro{\RMax}{max(\RMax,\cellValue)}}
% draw axis and ticks
% if you want these on top of the circle sectors, move the code to the end
\pgfmathsetmacro\AxisRadius{1.1}
\draw (0,0) -- (0,\AxisRadius) arc[start angle=90,delta angle=-180,radius=\AxisRadius] -- cycle;
\foreach \A in {-90,-45,...,90}
\draw [very thin, gray] (0,0) -- (\A:\AxisRadius*1cm+1pt) node [black, circle,anchor=\A+180] {$\A$};
% loop over the table
\foreach \N in {0,...,\Nrows}{
% read x-value from table
\pgfplotstablegetelem{\N}{x}\of\loadedtable
\pgfmathsetmacro{\tmpX}{\pgfplotsretval}
% read y-value from table
\pgfplotstablegetelem{\N}{y}\of\loadedtable
\pgfmathsetmacro{\tmpY}{\pgfplotsretval/\RMax}
% read z-value from table
\pgfplotstablegetelem{\N}{z}\of\loadedtable
\pgfmathsetmacro{\tmpZ}{\pgfplotsretval}
% \pgfplotscolormapdefinemappedcolor takes a number between 0 and 1000 as input.
% scale the given z-value based on the range of values
\newcommand{\tmpClr}{\fpeval{(\tmpZ-\ZMin)/\Zrange*1000}}
% make the slice
\fill [slice=\tmpClr] (0,0) -- (\tmpX-\Dhalf:\tmpY) arc[start angle=\tmpX-\Dhalf, delta angle=2*\Dhalf, radius=\tmpY] -- cycle;
}
\end{tikzpicture}
\end{document}

Round 2
\documentclass{standalone}
\usepackage{xfp}
\usepackage{pgfplotstable}
\usepackage{filecontents}
\def\mydata{mydata.csv}
\begin{filecontents*}{\mydata}
x,y,z
-80,5,0
-60,6,1
-40,2,2
-20,7,3
0,5,4
20,3,5
40,7,6
60,3,7
80,4,8
\end{filecontents*}
\pgfplotstableread[col sep=comma]{\mydata}\loadedtable
\begin{document}
\begin{tikzpicture}[
% radii are normalized to [0,1], so the scale will in effect set the radius of the longest slice
scale=5,
% from https://tex.stackexchange.com/a/340346
% Defines the colormap
/pgfplots/colormap/viridis,
slice/.style={/utils/exec={
% Defines a color "mapped color"
\pgfplotscolormapdefinemappedcolor{#1}},
fill=mapped color
}
]
% define half angle step
\pgfmathsetmacro\Dhalf{10}
% get number of data rows in table
\pgfplotstablegetrowsof{\mydata}
\pgfmathtruncatemacro{\Nrows}{\pgfplotsretval-1}
% find min/max of z-column
\pgfmathsetmacro\ZMax{-1e3}
\pgfmathsetmacro\ZMin{1e3}
% https://tex.stackexchange.com/a/252360/
\pgfplotstableforeachcolumnelement{z}\of\loadedtable\as\cellValue{\pgfmathsetmacro{\ZMax}{max(\ZMax,\cellValue)}}
\pgfplotstableforeachcolumnelement{z}\of\loadedtable\as\cellValue{\pgfmathsetmacro{\ZMin}{min(\ZMin,\cellValue)}}
% calculate range of z-values
\pgfmathsetmacro\Zrange{\ZMax-\ZMin}
% find max radius
\pgfmathsetmacro\RMax{0}
\pgfplotstableforeachcolumnelement{y}\of\loadedtable\as\cellValue{\pgfmathsetmacro{\RMax}{max(\RMax,\cellValue)}}
% draw axis and ticks
% if you want these on top of the circle sectors, move the code to the end
\pgfmathsetmacro\AxisRadius{1.05}
\draw (0,0) -- (0,\AxisRadius) arc[start angle=90,delta angle=-180,radius=\AxisRadius] -- cycle;
\foreach \A in {-80,-60,...,90}
\draw [very thin, gray] (0,0) -- (\A:\AxisRadius*1cm+1pt) node [black, circle,anchor=\A+180] {$\A$};
% loop over the table
\foreach [evaluate={\M=int(\N+1);\O=int(\N-1);}] \N in {0,...,\Nrows}{
% read x-value from table
\pgfplotstablegetelem{\N}{x}\of\loadedtable
\pgfmathsetmacro{\tmpX}{\pgfplotsretval}
% read y-value from table
\pgfplotstablegetelem{\N}{y}\of\loadedtable
\pgfmathsetmacro{\Rmid}{\pgfplotsretval/\RMax}
% read z-value from table
\pgfplotstablegetelem{\N}{z}\of\loadedtable
\pgfmathsetmacro{\tmpZ}{\pgfplotsretval}
% \pgfplotscolormapdefinemappedcolor takes a number between 0 and 1000 as input.
% scale the given z-value based on the range of values
\newcommand{\tmpClr}{\fpeval{(\tmpZ-\ZMin)/\Zrange*1000}}
\ifnum \N>0
\pgfplotstablegetelem{\O}{y}\of\loadedtable
\pgfmathsetmacro{\YPre}{\pgfplotsretval/\RMax}
\pgfmathsetmacro\Rpre{0.5*sqrt(\Rmid*\Rmid + \YPre*\YPre + 2*\Rmid*\YPre*cos(\Dhalf*2))}
\pgfmathsetmacro\AnglePre{atan2(0.5*(\Rmid*sin(\tmpX) + \YPre*sin(\tmpX-\Dhalf*2)), 0.5*(\Rmid*cos(\tmpX) + \YPre*cos(\tmpX-\Dhalf*2)))}
\fi
\ifnum \N<\Nrows
\pgfplotstablegetelem{\M}{y}\of\loadedtable
\pgfmathsetmacro{\YPost}{\pgfplotsretval/\RMax}
\pgfmathsetmacro\Rpost{sqrt(\Rmid*\Rmid + \YPost*\YPost + 2*\Rmid*\YPost*cos(\Dhalf*2))/2}
\pgfmathsetmacro\AnglePost{atan2(0.5*(\Rmid*sin(\tmpX) + \YPost*sin(\tmpX+\Dhalf*2)), 0.5*(\Rmid*cos(\tmpX) + \YPost*cos(\tmpX+\Dhalf*2)))}
\fi
\ifnum \N=0
\fill [slice=\tmpClr] (0,0) -- (\tmpX:\Rmid) -- (\AnglePost:\Rpost) -- cycle;
\else
\ifnum \N=\Nrows
\fill [slice=\tmpClr] (0,0) -- (\tmpX:\Rmid) -- (\AnglePre:\Rpre) -- cycle;
\else
\fill [slice=\tmpClr] (0,0) -- (\AnglePre:\Rpre) -- (\tmpX:\Rmid) -- (\AnglePost:\Rpost) -- cycle;
\fi
\fi
}
\end{tikzpicture}
\end{document}
