임의의 부드러운 그림(점을 부드럽게 연결하는 것)이 있고 점 사이의 점을 강조하고 싶습니다. 그래프의 점을 x축의 좌표와 연결하면 강조 표시가 발생합니다.
그대로 유지하고 싶은 MWE는 다음과 같습니다.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ytick=\empty,xtick=\empty,
axis on top=false,xmin=0, xmax=10, ymin=0, ymax=5,
axis x line=left, axis y line=left, clip=false]
\node at (rel axis cs:1,0) [above, anchor=north west] {$x$};
\node at (rel axis cs:0,1) [above, anchor=west] {$y$};
\addplot[smooth] coordinates {
(0,0)
(2,3)
(5,1.2)
(5.8,4)
(8,3.8)
(10,3.5)
} coordinate [pos=.9] (prior) ;
\end{axis}
\end{tikzpicture}
\end{document}
prior
y축에 평행한 선을 사용하여 좌표를 x축과 연결하고 싶습니다 . 내 생각은 이랬어
\draw[dotted] (prior)-- (rel axis cs:0.9,0);
그러나 어떤 이유에서인지 불분명한데, 이것은 올바른 좌표가 아닙니다(조금 오른쪽에 있습니다). 이제 올바른 좌표를 어떻게 평가할 수 있는지 궁금합니다. 이 함수는 0:10
내 수학 능력 에 따라 범위를 표시 하므로 x축 길이 .9
도 같아야 합니다 . .9
그러나 이는 잘못된 것 같습니다. 올바른 좌표가 무엇인지 아는 사람이 있나요? 또는 더 간단합니다. 가능한 가장 짧은 방법으로 점(이전)을 x축과 어떻게 연결할 수 있습니까?
나는 이 질문에 대한 답변에서 제안된 솔루션을 사용해 작업하려고 했습니다.부드러운 pgfplot. 문제는 이전 지점의 y 좌표를 모른다는 것입니다.
완전성을 위해 여기에 생성되는 출력이 있습니다(축의 다른 레이블은 신경 쓰지 마세요).
답변1
그래서 이걸 찾고 있는 거야?
x=0.9가 아닌 이유는 pos=0.9
실제로 좌표가 선 길이의 90%에 위치하기 때문입니다. 그리고 선의 시작 부분(즉, 낮은 x 값)에 "위 및 아래"가 많기 때문에 선의 이 부분은 선의 끝 부분(즉, 높은 x 값)보다 "더 깁니다". ) 거의 수평 직선에 가깝습니다.
(완전성을 기하기 위해: 따라서 라인의 x=0.9에 노드를 배치하려는 의도가 있다면 현재 이 기능을 직접 사용하는 것은 불가능 pos
하지만 해당 기능에 대한 요청이 이미 있습니다.PGFPlots 추적기. 물론 intersections
TikZ의 라이브러리를 사용하는 등 간접적으로 수행할 수도 있습니다.)
% used PGFPlots v1.14
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{
% use this `compat' level or higher so there is no need any more to prefix
% TikZ coordinates with `axis cs:'
compat=1.11,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xtick=\empty,
ytick=\empty,
xmin=0,
xmax=10,
ymin=0,
ymax=5,
axis lines=center,
% (moved the axis labels here)
xlabel={$x$},
ylabel={$y$},
xlabel style={anchor=north west},
ylabel style={anchor=north east},
]
\addplot [smooth] coordinates {
(0,0)
(2,3)
(5,1.2)
(5.8,4)
(8,3.8)
(10,3.5)
}
coordinate [pos=.9] (prior)
;
% to draw a vertical line from `prior' down to the x axis use the `|-' operator and state an arbitrary x value, but 0 as y value
\draw [dotted] (prior) -- (prior |- 0,0);
\end{axis}
\end{tikzpicture}
\end{document}