如何向非表格形式的 PGFPlots 图形数据添加误差线

如何向非表格形式的 PGFPlots 图形数据添加误差线

我正在 PGFPlots 中制作图表,我的轴上有很多线条。我的 MWE 包含两条。每个都有不同的错误值,我的数据是坐标形式,而不是表格形式。我是否必须重新调整数据以适应表格形式(然后使用错误添加喜欢这个问题?)或者是否有另一种方法可以用坐标形式定义我的数据的错误?

我不熟悉如何在 PGFPlots 中使用表格结构来处理我的数据。如果必须的话,我会查看此网站上的其他问题,但我也希望得到解释。

这是我的 MWE:

\documentclass[11pt,a4paper]{article}

\newcommand{\textsharp}{$\sharp$}

\usepackage{mathtools}
\usepackage{rotating}
\usepackage{xcolor}
\usepackage{transparent}

\usepackage[hyphens]{url}
\usepackage{breakurl} 
\usepackage[breaklinks]{hyperref}
\hypersetup{
    colorlinks = false,
    allbordercolors = white,
    pdfborder = 0 0 0,
    breaklinks=true}
%\usepackage{cite}
\def\UrlBreaks{\do\/\do-}

\usepackage{cleveref}

\usepackage{bookman}
\usepackage[T1]{fontenc}

\usepackage{geometry}

%\usepackage[square, super]{natbib}

\usepackage{ragged2e}

\usepackage{pgfplots}
\pgfplotsset{width=12cm,compat=1.9}
\usepackage{tikz}

\geometry{
tmargin=20mm, 
bmargin=20mm, 
lmargin=20mm, 
rmargin=20mm,
}

\usepackage{amssymb}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    title={Change of Guitar String Frequency due to Change in Humidity over Time},
    xlabel={Time (s $\times 10^4$)},
    ylabel={Average $\Delta$Frequency (Hz $\times 10^{-2}$)},
    xmin=0, xmax=24,
    ymin=0, ymax=50,
    xtick={0,2,4,6,8,10,12,14,16,18,20,22,24},
    ytick={0,5,10,15,20,25,30,35,40,45,50},
    legend pos=outer north east,
    ymajorgrids=true,
    xmajorgrids=true,
    xminorgrids=true,
    yminorgrids=true,
]

\addplot[ % E STRING
    color=blue,
    only marks,
    % scatter,
    mark=*,
    mark size=2.9pt,
    error bars/.cd,
    y dir=both,
    y explicit,
    ]
    coordinates {
    (0,0)(2.88,9)(5.76,12)(8.64,25)(11.52,13)(14.4,14)(17.28,15)(20.16,15)(23.04,13)
    };
    \legend{E String (Base $f = 82.41$ Hz)}
\addplot [
    domain=0:23.04, 
    samples=200, 
    color=blue,
    ]
    {0.0006*x + 13.78};
    \addlegendentry{Line of Best Fit - E String}

    \addplot[ % A STRING
    color=red,
    only marks,
    % scatter,
    mark=*,
    mark size=2.9pt,
    ]
    coordinates {
    (0,0)(2.88,3)(5.76,4)(8.64,9)(11.52,9)(14.4,5)(17.28,7)(20.16,8)(23.04,6)
    };
    \addlegendentry{A String (Base $f = 110$ Hz)}
\addplot [
    domain=0:23.04, 
    samples=200, 
    color=red,
    ]
    {0.0015*x + 4.49};
    \addlegendentry{Line of Best Fit - A String}
\end{axis}
\end{tikzpicture}
\end{document}

答案1

因此,我决定将图表中的数据点切换到外部.dat文件。我能够使用我链接的问题中的方法来解决链接表格和编译 pdf 的问题。这样编译速度也更快。

相关内容