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.

I'm having some trouble with polar plots. I generate the plot coordinates using Scilab and then plot them in Latex. I can't figure out how to remove the points (mark = \empty does nothing, but changing the mark with mark=x for example does nothing either), nor can I move the ticks out of the picture. Can anyone help please?

I want to add units to the ticks as well, degrees for the x ticks and dB for the y ticks.

My code is as follows:

\begin{tikzpicture}
\begin{polaraxis}[xmin=-90,xmax=90,rotate=90]
    \addplot table [x index=0, y index=1,col sep = comma, data cs=polarrad,mark = \empty]{mydata05.csv};
\end{polaraxis}
\end{tikzpicture}

Polar plot

share|improve this question
    
Would it be possible to include the contents of mydata05.csv in your question? And if it's too big, perhaps you could cut it down to just a few points? –  John Wickerson May 30 '13 at 9:36
    
In the meantime, try adding no markers as an option to your {polaraxis} environment. Or maybe mark=none, I'm not sure which is the right one. –  John Wickerson May 30 '13 at 9:50
    
Concerning the units: see also tex.stackexchange.com/a/116496/1537 which might be related –  Christian Feuersänger May 30 '13 at 10:00
    
The rotation could be a missing feature in pgfplots' polar axis: the feature which computes cool positions automatically does not work well with rotate=90. Perhaps it is even a bug. In other words: fixing the tick labels in you case might be more involved than one wants it to be ... –  Christian Feuersänger May 30 '13 at 10:01
add comment

1 Answer

As John said, you can remove the points by using the key no markers in the polaraxis options (or in the \addplot options if you only want to remove the marks for a single plot).

For moving the tick marks out the axis, you can put the following code snippet in your preamble, which will make sure that the labels are placed properly regardless of the axis rotation (\pgftransform@angle is a key that is set whenever rotate=<angle> is called):

\makeatletter
\def\pgftransform@angle{0}
\pgfplotsset{
    xticklabel style={
        inner xsep=1pt,
        ellipse,
        anchor=\tick-(180-\pgftransform@angle)
    },
    yticklabel style={
        anchor=\pgftransform@angle
    }
}
\makeatother

For the degree symbol, you can use the approach from your other question (Polar plots, add degree symbol and hide the radius axis labels), as Christian mentioned.

(And the same axis with rotate=35)

\documentclass[10pt,border=10pt]{standalone}

\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\usetikzlibrary{shapes.geometric}

\makeatletter
\def\pgftransform@angle{0}
\pgfplotsset{
    xticklabel style={
        inner xsep=1pt,
        ellipse,
        anchor=\tick-(180-\pgftransform@angle)
    },
    yticklabel style={
        anchor=\pgftransform@angle
    }
}
\makeatother

\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[xmin=-90,xmax=90,rotate=90,
    domain=-90:90,
    xticklabel=$\pgfmathprintnumber{\tick}^\circ$,
    no markers]
    \addplot +[orange, thick, smooth] {cos(x)};
\end{polaraxis}
\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.