如何使用 pgfplots 从表/文件绘制多边形

如何使用 pgfplots 从表/文件绘制多边形

我不知道如何仅使用 3 行坐标绘制多边形或三角形。我有几个问题:

  1. 我无法使针脚角看起来很清晰(线越细就越不明显)
  2. 我必须复制第一行坐标才能形成完整的形状
  3. 为了解决第一个问题,我还必须复制第二行
  4. 使用时会出现文件名无效的错误,因此如果我想使用,\addplot table {}; \resizebox{10cm}{!}{}则无法调整大小tikzpicture\addplot table {};

因此,为了制作出像三角形这样的简单形状,我必须提供5 个坐标,其中 2 个我必须手动复制。为了对多个形状执行此操作,我必须为每个形状(在每个文件中)执行所有这些繁琐的工作。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
% \resizebox{10cm}{!}{ % Gives error if uncommented
\begin{tikzpicture}
  \begin{axis}
    \addplot[line width=2pt] table {
      1 1
      5 1
      5 5
      1 1 % 1st line
      5 1 % 2nd line
    };
  \end{axis}
\end{tikzpicture}
% }
\end{document}

如何从表格/文件绘制完美拼接的形状(多边形)而不重复坐标?为什么调整大小命令会失败?

PS 在文档中,我找不到任何关于从表格创建多边形的内容,只有锯齿线等。我使用lualatex

答案1

-- cycle在末尾附加\addplot以关闭路径,那么您只需要三个顶点,就可以得到一个合适的角。

就缩放而言,为什么不使用pgfplots'功能,即width(和/或height)键来执行此操作?

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}

\begin{tikzpicture}
  \begin{axis}[width=10cm]
    \addplot[line width=2pt] table {
      1 1 
      5 1 
      5 5 
    } -- cycle;
  \end{axis}
\end{tikzpicture}

\end{document}

答案2

只是为了好玩:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[width=10cm]
    \addplot[opacity=0] table {
      x y
      1 1
      5 1
      5 5
    };
    \coordinate (A) at (axis cs: 1,1);
    \coordinate (B) at (axis cs: 5,1);
    \coordinate (C) at (axis cs: 5,5);
  \end{axis}
  \draw[line width=2pt] (A)--(B)--(C)--cycle;
\end{tikzpicture}
\end{document}

相关内容