我想用从 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
图片就是我试图重新创建的。这是我要绘制标记点的代码,有人能告诉我如何创建一条与所有点相对的线吗?如果可能的话,还可以添加更多 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
。
要获取指定刻度的网格线,只需添加grid
到axis
选项中。
在下面的代码中,我还添加了一个使用该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}