pgfplots 中从 x 轴到标记的直线

pgfplots 中从 x 轴到标记的直线

我正在尝试绘制一个图,其中只有从 x 轴到标记的线,如下所示:

在此处输入图片描述

这是我迄今为止所拥有的 MWE:

\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\usepackage{graphicx}

\begin{filecontents*}{data.csv}
  Iter   y 
     1, -0.9317521
     2, 1.8946202
     3, 0
     4, 1.5797030
     5, -1.8814457
     6, 0
     7, 2.0373926
     8, 0
     9, 1.9972528
    10, 0
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel={$Number~of~Recursions$},ylabel={Absolute Parameter Error}]
\addplot [only marks,mark=*,blue,mark options={scale=.65}]table[x index=0,y index=1,col sep=comma] {data.csv};
\end{axis}
\end{tikzpicture}
\end{document} 

答案1

类似这样的?只需将bar width和编辑line width为所需值即可

\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\usepackage{graphicx}

\begin{filecontents*}{data.csv}
  Iter   y 
     1, -0.9317521
     2, 1.8946202
     3, 0
     4, 1.5797030
     5, -1.8814457
     6, 0
     7, 2.0373926
     8, 0
     9, 1.9972528
    10, 0
\end{filecontents*}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[ybar,bar width=1pt,xlabel={$Number~of~Recursions$},ylabel={Absolute Parameter Error}]
      \addplot [mark=*,blue, fill=blue,mark options={scale=.65}]table[x index=0,y index=1,col sep=comma] {data.csv};
      \addplot[blue,line width=1pt,sharp plot, update limits=false] coordinates {(0,0) (11,0)};
    \end{axis}
  \end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

这是梳状图,不是吗?如果您需要 y=0 的线,您可以添加图 ( \addplot[blue] coordinates {(0,0)(10,0)};) 或使用来自的方法如何在绘图中添加零线?

顺便一提,递归次数不是数学,请勿以数学模式书写。如果您想要斜体,请使用\textit{Number of recursions}或。xlabel style={font=\itshape},xlabel=Number of recursions

\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
  Iter   y 
     1, -0.9317521
     2, 1.8946202
     3, 0
     4, 1.5797030
     5, -1.8814457
     6, 0
     7, 2.0373926
     8, 0
     9, 1.9972528
    10, 0
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xlabel={Number of Recursions},
  ylabel={Absolute Parameter Error},
  after end axis/.append code={
   \draw[ultra thin,blue] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},0) -- (axis cs:\pgfkeysvalueof{/pgfplots/xmax},0);
}]

\addplot+ [ycomb] table[x index=0,y index=1,col sep=comma] {data.csv};
\end{axis}
\end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容