Получите соотношение 1:1 между графиком pgfplot и «размерами документа»

Получите соотношение 1:1 между графиком pgfplot и «размерами документа»

Например, я пытался получить длины графиков pgfplot в той же пропорции, что и в координатах tikz за пределами графиков.

Вот изображение, которое я использую в качестве примера:

введите описание изображения здесь

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}

\draw[fill] (0,4.5) coordinate[label={right:\footnotesize{(0,4.5)}}] circle (0.06);
\draw[fill] (6,0) coordinate[label={above:\footnotesize{(6,0)}}] circle (0.06);
\begin{axis}[
  width=6cm,
  height=4.5cm,
  axis lines=middle,
  unit vector ratio=1 1,
  xmax=6,
  ymax=4.5,
  xmin=0,
  ymin=0,
  samples=50,
  xtick distance=1,ytick distance=0.5,
  every tick label/.append style={font=\tiny}
]
\addplot[domain=0:6] {1/\x^2};
\end{axis}

\end{tikzpicture}
\end{document}

Мне бы хотелось иметь соотношение 1:1 между длиной оси и «координатами», но я не знаю, как этого добиться.

Спасибо.

решение1

В этом случае вам нужно только добавить, [scale only axis]чтобы зафиксировать ширину и высоту для соответствия экранным координатам. Опции [unit vector ratio]или [equal axis]излишни.

\documentclass{standalone}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}

\draw[fill] (0,4.5) coordinate[label={right:\footnotesize{(0,4.5)}}] circle (0.06);
\draw[fill] (6,0) coordinate[label={above:\footnotesize{(6,0)}}] circle (0.06);
\begin{axis}[scale only axis,
  width=6cm,
  height=4.5cm,
  axis lines=middle,
  xmax=6,
  ymax=4.5,
  xmin=0,
  ymin=0,
  samples=50,
  xtick distance=1,ytick distance=0.5,
  every tick label/.append style={font=\tiny}
]
\addplot[domain=0:6] {1/\x^2};
\end{axis}

\end{tikzpicture}
\end{document}

демо

Связанный контент