
Я хочу создать полярный график только первого квадранта круга (углы от 0 до 90 градусов), но не могу правильно расставить отметки и метки. Возьмем этот пример:
\documentclass{standalone}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.polar}
\pgfplotsset{width=10cm,compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
domain=0:90,
ymin=0, ymax=1.5,
xmin=0, xmax=90,
xlabel={angle},
ylabel={radius},
ytick pos=left,
]
\addplot {1};
\end{polaraxis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
domain=0:90,
ymin=0, ymax=1.5,
xmin=0, xmax=90,
xlabel={angle},
ylabel={radius},
]
\addplot {1};
\end{axis}
\end{tikzpicture}
\end{document}
Вещи, которые я хотел бы получить, но не могу найти для этого последовательного способа:
Метки радиуса (горизонтальная ось) под графиком
Также под горизонтальной осью напишите «радиус».
Удалите внешнюю круглую линию, но оставьте отметки и метки.
Кроме того, размер не соответствует запрошенной "ширине", как это происходит с прилагаемым декартовым графиком, я полагаю, это потому, что размер вычисляется для полного круга. Это намеренно?
Можно ли решить эту проблему с помощью более новой версии pgfplots?
решение1
Я думаю, что polar
библиотека представляет собой "быструю и грязную" реализацию и, похоже, не используется очень часто, потому что в ней, как вы уже сами обнаружили, есть пара ошибок. Так что, похоже, приходится размещать и рисовать все необходимые вещи без "интеллекта" PGFPlots.
Если хотите, можете добавить ошибки вжучок-таккер. Лучше всего, чтобы каждая ошибка имела MWE.
\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.polar}
\pgfplotsset{width=10cm,compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
domain=0:90,
ymin=0, ymax=1.5,
xmin=0, xmax=90,
xlabel={angle},
ylabel={radius},
ytick pos=left,
% move `yticklabels' below the axis line
% yticklabel pos=lower, % <-- doesn't seem to work in `polaraxis'
% move them down by hand
yticklabel style={
anchor=north,
yshift=-2pt,
},
% move ``radius'' label below the axis
ylabel style={
at={(axis cs:0,0.75)},
anchor=near ticklabel opposite,
yshift=-2ex,
},
% move ``angle'' label to 45° again
xlabel style={
at={(axis cs:45,1.7)},
sloped={at position=45},
anchor=near ticklabel,
near ticklabel at=45,
},
% don't draw the axis lines
axis line style={draw=none},
% in case you want to draw the yaxis lines only
% (but the line will then be drawn above marks ...)
after end axis/.code={
\draw (axis cs:0,1.5) -- (axis cs:0,0) -- (axis cs:90,1.5);
% test the width of the plot
\draw [red] (axis cs:-1,1.5) -- +(-5cm,0);
},
% % to scale only the axis (and not also the labels, etc.)
% scale only axis=true,
]
\addplot {1};
\end{polaraxis}
\end{tikzpicture}
\end{document}