我正在尝试在环境中绘制直线polaraxis
(这是要求)。因为它们必须经过原点中,参数极坐标方程的形式为$\theta=constant$
。然而,在 中pgfplots
,似乎只能将图描述为$r=f(\theta)$
(使用极坐标中半径和角度的通常符号)。
避免这种情况的一种方法是使用draw
如下方法:
\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
no marks,samples=1000,xmin=0,xmax=90,ymin=0,ymax=1,xtick = {0,22.5,45,68.5},xticklabels={,,},ytick={0,1},
major tick length=0pt,legend style={at={(0.9,0.9)},font=\footnotesize},
yticklabel style={anchor=north}
]
\addplot[domain=-1:0.2, data cs = polarrad,draw=blue, thick] {0.01*exp(x/0.031)};
\addlegendentry{blue legend}
\draw[red,thick] (0,0) -- (100,200);
\addlegendentry{red legend}
\end{polaraxis}
\end{tikzpicture}
\end{document}
我的蓝色曲线是我现有的pgfplots
曲线,与图例配合得很好。红色是一条直线,我试图将传说与,它不适用于此代码(tiks 与 pgfplots 的兼容性问题?)。
我首先尝试的另一种解决方案是使用xticks
这里绘制的角度{0,22.5,45,68.5}
;但同样的问题是,我无法将图例与从原点播种并形成所需直线的刻度联系起来。
我一定是忽略了一个简单的技巧,因为这不应该是一个大任务。
答案1
您应该始终设置兼容级别 - 请参阅代码。在新版本的 PGFPlots 中,轴坐标在 内使用axis
。我将其更改(100,200)
为 60 度的线:((1:60)
与 相同(60,1)
)。以下是如何添加额外的图例条目:
\documentclass[tikz, border=1 cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{polar}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
no marks,samples=1000,xmin=0,xmax=90,ymin=0,ymax=1,xtick = {0,22.5,45,68.5},xticklabels={,,},ytick={0,1},
major tick length=0pt,legend style={at={(0.9,0.9)},font=\footnotesize},
yticklabel style={anchor=north}
]
\addplot[domain=-1:0.2, data cs = polarrad,draw=blue, thick] {0.01*exp(x/0.031)};
\addlegendentry{ blue legend};
\draw[red,thick] (0,0) -- (1:60);
\addlegendimage{line legend, red, thick};
\addlegendentry{red legend};
\end{polaraxis}
\end{tikzpicture}
\end{document}
并使用\addplot
:
\addplot[red, thick] coordinates{(0,0) (60,1)};