As percusse and user14649 pointed out, the problem stems from the fact that only two coordinates are left after the filtering, and no connecting line is drawn.
To fix this, you should set the key unbounded coords=discard
, which will treat the plot as if the filtered out coordinates had never been there in the first place. The default behaviour is jump
, which interrupts the plot when a coordinate is discarded.
Here's a slightly simpler example to explain how these keys work. If you don't apply any filters, a plot might look like this:

If you only want to use the coordinates where C
is 1, you can use restrict expr to domain={\thisrow{C}}{0.5:1.5}
, leading to

To get a connected plot, you also have to set unbounded coords=discard
:

If you had set restrict expr to domain*={\thisrow{C}}{0.5:1.5}
(with an asterisk), all x-coordinates where the value of C
is greater than 1.5 would have been set to 1.5:

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{myData2.csv}
A;B;C
1;10;1
2;20;1
3;30;2
4;20;1
5;10;2
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=1,xmax=5,ymin=0]
\addplot[
mark=*,
red,
line width=0.5pt
]
table
[
x=A,
y=B,
col sep=semicolon
] {myData2.csv};
\end{axis}
\end{tikzpicture}
\end{document}
An experiment (30% solved, 70% remaining...)
I have rearranged your data from Matlab format manually (with and without the third column which may store the level), but I am setting color per plot/contour manually because I don't know how to extract a color from the used colormap
or shading
at a specific location, yet.
Notice: The format is that it contains the level and number of points per one contour, then angle and distance of that point, one point per line, and again, the level and number of points for another contour etc.
That's probably for a separate question at TeX.SX as that color is inbetween two known colors with a known distance from each other. I was thinking of my own color map to handle it and then it would be easy to match the colors at those levels back, but I am not for it right now. Close topic to this is PGFPlots: synchronize the filling of the bars with the colorbar.
I am enclosing what I have got right now. Please notice that gray
color doesn't fit to the original colorbar
where red color is used at top, I did that on purpose to highlight a new arisen problem in this approach.
\documentclass[margin=10]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
%\pgfplotsset{compat=newest} % 1.10
\begin{document}
%\ifx\relax % An original version...
\begin{tikzpicture}
\begin{polaraxis}[
title=\texttt{Station 1 (quantity [units])}, colorbar,
ymax=.15, grid=major, xmin=30, yticklabels={0,,0.1,,0.2},
%xlabel={\texttt{quantity (units)}$\rightarrow$},
]
\addplot[contour prepared={labels=false}, contour prepared format=matlab] file {mal-polar-data.txt};
\end{polaraxis}
\end{tikzpicture}
%\fi% End of an original version...
\hspace{8mm}%
\begin{tikzpicture}
\begin{polaraxis}[title=\texttt{Station 1 (quantity [units])}, colorbar, ymax=.17,
grid=major, xmin=30, yticklabels={0,,0.1,,0.2},
%xlabel={\texttt{quantity (units)}$\rightarrow$}
]
\addplot[mark=none, fill=blue] table { % contour prepared, color is 0.006, points 35
99.347 0.062 0.006
120.000 0.059 0.006
150.000 0.056 0.006
180.000 0.055 0.006
210.000 0.055 0.006
240.000 0.056 0.006
270.000 0.059 0.006
290.917 0.062 0.006
300.000 0.064 0.006
320.125 0.071 0.006
330.000 0.077 0.006
337.057 0.081 0.006
346.617 0.092 0.006
347.017 0.106 0.006
332.627 0.120 0.006
330.000 0.122 0.006
300.000 0.136 0.006
291.482 0.138 0.006
270.000 0.144 0.006
240.000 0.148 0.006
210.000 0.150 0.006
180.000 0.150 0.006
150.000 0.148 0.006
120.000 0.144 0.006
98.788 0.138 0.006
90.000 0.136 0.006
60.000 0.122 0.006
57.587 0.120 0.006
43.064 0.106 0.006
43.467 0.092 0.006
53.117 0.081 0.006
60.000 0.077 0.006
70.094 0.071 0.006
90.000 0.064 0.006
99.347 0.062 0.006
};
\addplot[mark=none, fill=blue!30] table { % color 0.012, points 31
165.383 0.062
180.000 0.061
210.000 0.061
224.441 0.062
240.000 0.063
270.000 0.066
289.722 0.071
300.000 0.074
316.253 0.081
327.294 0.092
327.761 0.106
311.104 0.120
300.000 0.126
270.000 0.134
240.000 0.137
226.737 0.138
210.000 0.139
180.000 0.139
163.077 0.138
150.000 0.137
120.000 0.134
90.000 0.126
79.189 0.120
62.394 0.106
62.865 0.092
73.998 0.081
90.000 0.074
100.535 0.071
120.000 0.066
150.000 0.063
165.383 0.062
};
\addplot[mark=none, fill=yellow] table { % color 0.018, points 27
129.729 0.071
150.000 0.068
180.000 0.066
210.000 0.066
240.000 0.068
260.302 0.071
270.000 0.072
298.620 0.081
300.000 0.082
315.003 0.092
315.702 0.106
300.000 0.117
291.759 0.120
270.000 0.128
240.000 0.132
210.000 0.134
180.000 0.134
150.000 0.132
120.000 0.128
98.513 0.120
90.000 0.116
74.552 0.106
75.257 0.092
90.000 0.082
91.703 0.081
120.000 0.072
129.729 0.071
};
\addplot[mark=none, fill=orange] table { % color 0.024, points 27
170.180 0.071
180.000 0.070
210.000 0.070
219.672 0.071
240.000 0.072
270.000 0.077
282.910 0.081
300.000 0.090
302.713 0.092
303.644 0.106
300.000 0.108
273.691 0.120
270.000 0.122
240.000 0.128
210.000 0.130
180.000 0.130
150.000 0.128
120.000 0.122
116.443 0.120
90.000 0.108
86.710 0.106
87.649 0.092
90.000 0.091
107.293 0.081
120.000 0.077
150.000 0.072
170.180 0.071
};
\addplot[mark=none, fill=orange!50] table { % color 0.030, points 21
123.324 0.081
150.000 0.076
180.000 0.074
210.000 0.074
240.000 0.076
266.766 0.081
270.000 0.082
291.525 0.092
292.553 0.106
270.000 0.116
253.470 0.120
240.000 0.123
210.000 0.126
180.000 0.126
150.000 0.123
136.499 0.120
120.000 0.116
97.724 0.106
98.744 0.092
120.000 0.082
123.324 0.081
};
\addplot[mark=none, fill=red] table { % color 0.036 points 21
141.306 0.081
150.000 0.079
180.000 0.077
210.000 0.077
240.000 0.079
248.619 0.081
270.000 0.087
280.650 0.092
281.881 0.106
270.000 0.111
240.000 0.119
227.611 0.120
210.000 0.122
180.000 0.122
162.193 0.120
150.000 0.119
120.000 0.111
108.314 0.106
109.536 0.092
120.000 0.087
141.306 0.081
};
\addplot[mark=none, fill=red!50] table { % color 0.043 points 19
165.937 0.081
180.000 0.080
210.000 0.080
223.888 0.081
240.000 0.083
269.740 0.092
270.000 0.094
271.210 0.106
270.000 0.106
240.000 0.115
210.000 0.119
180.000 0.119
150.000 0.115
120.000 0.106
118.903 0.106
120.000 0.095
120.377 0.092
150.000 0.083
165.937 0.081
};
\addplot[mark=none, fill=red!20] table { % color 0.049 points 13
132.787 0.092
150.000 0.087
180.000 0.083
210.000 0.083
240.000 0.087
257.216 0.092
259.102 0.106
240.000 0.111
210.000 0.115
180.000 0.115
150.000 0.111
130.918 0.106
132.787 0.092
};
\addplot[mark=none, fill=gray] table { % color 0.055 points 13
145.197 0.092
150.000 0.091
180.000 0.086
210.000 0.086
240.000 0.091
244.692 0.092
246.810 0.106
240.000 0.108
210.000 0.112
180.000 0.112
150.000 0.108
143.098 0.106
145.197 0.092
};
\addplot[mark=none, fill=gray!50] table { % color 0.061 points 9
163.076 0.092
180.000 0.090
210.000 0.090
226.734 0.092
230.718 0.106
210.000 0.109
180.000 0.109
159.069 0.106
163.076 0.092
};
\end{polaraxis}
\end{tikzpicture}
\end{document}

Best Answer
Edit: Simple solution: If you just need to get this working and don't want to fiddle with the library code, you can just switch off the units for individual plots by using
\nextgroupplot [x unit={}]
ory unit={}
or both, depending on which plot is next."Proper" Solution: It seems like these two libraries are just not aware of each other, so you'll have to make some adjustments to the
groupplots
code. The labels are set right in the main chunk of code, unfortunately, so you can't get away with just redefining some small macros.In the file
tikzlibrarypgfplots.groupplots.code.tex
you have to replace the two occurrences of the linewith
and the two occurrences of the line
with
This will work with or without the
units
library, and with all combinations ofedge bottom
,edge top
,edge left
, andedge right
.Here's an example of the behaviour of the modified library: