我添加了一段代码;我想将填充的半圆从 (0,0) 移到 (0,1),但我必须将其移到 (-5.5,-4.5)。它给了我想要的结果,但我宁愿知道我做错了什么以及如何修复它,而不是使用变通方法。
任何建议将不胜感激。
begin{tikzpicture}[scale=0.75,cap=round,>=latex,baseline=(current bounding box.north)]
\begin{axis}[
axis background/.style={fill=white},
width=1.0\linewidth,
axis lines=middle,
grid=both,
%axis equal,
axis equal image,
grid style={very thin,cyan!50},
ymin=-5.5,
ymax=5.5,
%ytick=\empty,
ytick={-5,-4,...,5},
xmin=-5.5,
xmax=5.5,
%xtick=\empty,
xtick={-5,-4,...,5},
%xticklabels={},
yticklabels={$\ds -5i$,$\ds -4i$,$\ds -3i$,$\ds -2i$,$\ds -i$,$\ds 0$, $\ds i$,$\ds 2i$,$\ds 3i$,$\ds 4i$,$\ds 5i$},
xlabel=$\cal R$,
ylabel=$\cal I$,
%xticklabel={\pgfmathprintnumber{\tick}:00},
%xticklabel style={rotate=0,anchor=north east}
]
\draw [blue,thick,dashed] (0,1) circle[radius=1];
\addplot [->,blue, domain=-3.7:2.5, samples=500,thick,<->] {x*sqrt(3)+1};
\begin{scope}[shift={(-5.5,-4.5)}]
\fill[blue!40,opacity=0.25] (60:0) coordinate (beta) arc (60:-120:0) coordinate (alpha) -- (-120:1) arc (-120:60:1) -- cycle;
\end{scope}
\draw [black] (0,0) circle[radius= 0.3 em];
\end{axis}
\end{tikzpicture}
答案1
问题是坐标(0,1)
没有您期望的分量(就 pgf 分量而言)。您需要减去原点的 pgf 坐标。以下使用 执行此操作calc
。这不是唯一的方法,也不是最短的(最短的可能是shift={(axis direction cs:0,1)}
Henri Menke 建议),但这也许是最具教育意义的方法,因为从语法中您会看到我们通过坐标(0,1)
和之间的差异进行移动(0,0)
(其中(0,0)
具有非平凡的 pgf 分量)。您还有一个半径为 0 的圆弧,我将其删除,对于线性图,您不需要 500 个样本。我也不知道如何\ds
定义,但对于此处的问题,这并不重要,因此我使用未知宏删除了刻度。请注意,我使用版本,1.16
即使1.17
已经发布,因为许多 TeXLive 用户没有1.17
安装。但是,这也适用于1.17
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=0.75,cap=round,>=latex,baseline=(current bounding box.north)]
\begin{axis}[
axis background/.style={fill=white},
width=1.0\linewidth,
axis lines=middle,
grid=both,
%axis equal,
axis equal image,
grid style={very thin,cyan!50},
ymin=-5.5,
ymax=5.5,
%ytick=\empty,
ytick={-5,-4,...,5},
xmin=-5.5,
xmax=5.5,
%xtick=\empty,
xtick={-5,-4,...,5},
%xticklabels={},
%yticklabels={$\ds -5i$,$\ds -4i$,$\ds -3i$,$\ds -2i$,$\ds -i$,$\ds 0$, $\ds i$,$\ds 2i$,$\ds 3i$,$\ds 4i$,$\ds 5i$},
xlabel=$\mathcal{R}$,
ylabel=$\mathcal{I}$,
%xticklabel={\pgfmathprintnumber{\tick}:00},
%xticklabel style={rotate=0,anchor=north east}
]
\draw [blue,thick,dashed] (0,1) circle[radius=1];
\addplot [->,blue, domain=-3.7:2.5, samples=2,thick,<->] {x*sqrt(3)+1};
\begin{scope}[shift={($(0,1)-(0,0)$)}]
\fill[blue!40,opacity=0.25] (60:0) coordinate (beta)
-- (-120:1) coordinate (alpha)
arc[start angle=-120,end angle=60,radius=1] -- cycle;
\end{scope}
\draw [black] (0,0) circle[radius= 0.3 em];
\end{axis}
\end{tikzpicture}
\end{document}