在 x=1 处绘制一条高度为 0.6 的简单垂直线的 addplot 代码是什么

在 x=1 处绘制一条高度为 0.6 的简单垂直线的 addplot 代码是什么

我之前曾尝试回答过这个问题,但后来删除了,因为我觉得主题行具有误导性。对于可能造成的任何混淆,我深表歉意。

我的任务是在 x=1(概率质量函数)处绘制一条简单的垂直线。以下代码对我来说很有意义,但它挂起了编译器,需要重新启动:

\begin{tikzpicture}
    \begin{axis}[axis x line =middle, axis y line= left]
        \addplot[domain=1:1] {0.6*x};
        \addplot[mark=*] coordinates {(1,0.6)};
    \end{axis}
\end{tikzpicture}

如果我删除该行,\addplot[domain=1:1] ...它会编译成功。如果我将该行更改为,\addplot[domain=1] ...它会编译成功,但会出现 17 个错误。我对 axis 环境和 addplots 还不熟悉。我在网上找到的所有教程或技巧都无法解决我的问题。

为了符合发布标准,以下是完整的、最小的代码:

\documentclass{amsbook} 
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[axis x line =middle, axis y line= left] 
    \addplot[domain=1:1] {0.6*x};
    \addplot[mark=*] coordinates {(1,0.6)};
   \end{axis}
\end{tikzpicture}
\end{document}

答案1

pgfplots有一个专门用于绘制从 x 轴延伸出的垂直线的绘图类型:ycomb

xcomb与水平线有对应关系。

代码输出-带有垂直线的轴

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        axis x line=middle,
        axis y line= middle, 
        xmin=0, xmax=2,
        ymin=0, ymax=1
        ]
        \addplot [ycomb] coordinates {(1,0.6)};
    \end{axis}
\end{tikzpicture}
\end{document}

答案2

感谢我删除了我之前的回答以及您的原始问题,现在我可以消化并重新表述我最初写的内容:

  • 使用domain=1将导致语法错误。您需要使用类似 的内容domain=1:2,即两个数字分别表示域的开始和结束,并以冒号分隔。
  • 我可以重现您在使用时遇到的问题domain=1:1。但是如果您使用 LuaLaTeX 进行编译,则不会出现此问题。我目前没有答案。(实际上,理论上这应该绘制一个长度为零的图,但不可见。)
  • 但是,对于垂直线,您domain根本不需要,因为您只需使用坐标列表(在本例中只有两个)来绘制它即可。

使用此代码作为示例:

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[axis x line=middle, axis y line= middle, 
        xmin=0, xmax=2, ymin=0, ymax=1]
        \addplot[domain=0.5:1.5, blue] {0.6*x};         % <-- 0.6*x would give a diagonal line
        \addplot[red] coordinates {(1,0) (1,0.6)};      % <-- this should be what you are looking for
        \addplot[mark=*] coordinates {(1,0.6)};
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容