绘制.dat 文件

绘制.dat 文件

我想用从 MATLAB 中获取的.dat文件格式的数据绘制一个简单的图。该文件有两列,顺序如下。我希望第 1 列为 x,第 2 列为 y。

我已经尝试使用tikzpicture很久了,但无济于事。任何帮助我都非常感谢,谢谢。

我不知道这是否是个问题,但列很大,并且有很多条目。这是乳胶中的问题吗?

1.3888889e-03   2.0000478e+01
2.7777778e-03   2.0001440e+01
4.1666667e-03   2.0002877e+01
5.5555556e-03   2.0004785e+01
6.9444444e-03   2.0007160e+01
8.3333333e-03   2.0009999e+01
9.7222222e-03   2.0013296e+01

MATLAB 绘图

图片就是我试图重新创建的。这是我要绘制标记点的代码,有人能告诉我如何创建一条与所有点相对的线吗?如果可能的话,还可以添加更多 y 轴点,即每 100oC 和网格线。谢谢

\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}
[legend style = { at = {(0.6,0.75)}},only marks,
xlabel = Time\,/\,hr,xmax = 8,xmin = 0,
ylabel = Temperature\,/\,$^{0}$C,ymax = 600,ymin = 0]
\addplot [thin] table {data.dat};
\end{axis}
\end{tikzpicture}
\caption{Temperature Change in FB}
\end{figure}

答案1

数据点的数量是否是个问题取决于你所说的“巨大”到底是什么意思。但如果你已经成功地用点绘制了图表,那么这显然不是问题。至于其余部分:

only marks选项将只提供点。如果删除该选项,您将得到一条线。默认设置实际上是绘制点和线,但thin您添加到的选项会\addplot覆盖此设置,只提供线。您也可以使用该选项明确说明这一点no marks

您可以使用 指定 y 刻度的值ytick={<numbers>}。要获得间距均匀的刻度,请使用三点符号,即ytick={0,100,...,600}。与 类似xtick

要获取指定刻度的网格线,只需添加gridaxis选项中。

在下面的代码中,我还添加了一个使用该units库向轴添加单位的示例。我还添加了一个额外的数据值,只是为了获得一条可见的线来表示您给出的轴限值。

在此处输入图片描述

\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{units}

\usepackage{filecontents}
% the filecontents environment writes its content to the specified file
\begin{filecontents*}{data.dat}
1.3888889e-03   2.0000478e+01
2.7777778e-03   2.0001440e+01
4.1666667e-03   2.0002877e+01
5.5555556e-03   2.0004785e+01
6.9444444e-03   2.0007160e+01
8.3333333e-03   2.0009999e+01
9.7222222e-03   2.0013296e+01
8               550
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
  legend style = { at = {(0.6,0.75)}},
  unit markings=slash space,
  x unit={hr},
  y unit={^\circ C},
  xlabel=Time,
  ylabel=Temperature,
  xmin=0,xmax=8,
  ymin=0,ymax=600,
  ytick={0,100,...,600},
  xtick={0,1,...,8},
  grid,
  grid style={dotted}]

\addplot [thin] table {data.dat};

\end{axis}
\end{tikzpicture}
\end{document}

相关内容