pgfplots 写出数据点

pgfplots 写出数据点

在以下 MWE 中:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\renewcommand{\a}{14.53}
\renewcommand{\b}{1.03}
\renewcommand{\c}{87.6}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{
  scale only axis,
  xmin=0, xmax=80,
  axis x line=bottom
}

\begin{axis}[
  axis y line*=left,
  ymin=0, ymax=6,
  xlabel=Load (g),
  ylabel=Velocity of Shortening ($cm/s$),
  domain=0:80
]
\addplot[marks=o,marks only,samples=5] {\c/(x+\a)-\b+rand};
\end{axis}
\end{tikzpicture}
\end{document}

我有兴趣在 tikzfigure 下方添加一个表格,其中包含 tikz 用于创建图的数据点。这容易做到吗?还是更容易在外部生成数据,然后将其作为坐标导入 tikz?

答案1

是否更容易取决于你,但你可以先使用 的功能生成表格pgfplotstable,然后使用它进行绘图,以及在绘图后使用 打印它\pgfplotstabletypeset

另一方面,我认为最好不要重新定义任何现有的宏,并且单位不应该用斜体书写,所以我会删除它$周围的。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{pgfplots,pgfplotstable}
\pgfplotsset{compat=newest}
\newcommand{\mya}{14.53}
\newcommand{\myb}{1.03}
\newcommand{\myc}{87.6}
\pgfplotstablenew[
% first create x-values
create on use/x/.style={
  create col/set list={0,20,...,80}},
% then create the random numbers
create on use/rand/.style={%
  create col/expr={\myc/(\thisrow{x}+\mya)-\myb+rand}},
% define columns in the table
columns={x,rand}
]
{5}% set number of rows in table
{\randomdata} % macro to save table in
\begin{document}

\begin{tikzpicture}
\pgfplotsset{
  scale only axis,
  xmin=0, xmax=80,
  axis x line=bottom
}

\begin{axis}[
  axis y line*=left,
  ymin=0, ymax=6,
  xlabel=Load (g),
  ylabel=Velocity of Shortening (cm/s),
  domain=0:80
]
\addplot[mark=o,only marks] table[x=x,y=rand] {\randomdata};
\end{axis}
\end{tikzpicture}

\pgfplotstabletypeset\randomdata
\end{document}

在此处输入图片描述

相关内容