处理序列日期数字时显示“尺寸太大”

处理序列日期数字时显示“尺寸太大”

我使用 matlab2tikz 和 pgfplots 将绘图从 MATLAB 导出到 TeX。我的大多数绘图都包含“序列日期数字”,即自 0000 年 1 月 0 日以来的天数。正如您所猜测的,这些数字相当高,而数据点之间的差异相对较小。

以下示例引发了“尺寸太大”错误。但是,我已经可以编译一些类似的图形,例如一。

我的 MWE 如下:

\documentclass{scrartcl}

\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}

\begin{figure}
\centering
\input{example.tikz}
\end{figure}

\end{document}

删除后的内容example.tikz如下:

% This file was created by matlab2tikz v0.4.7 running on MATLAB 8.3.
% Copyright (c) 2008--2014, Nico Schlömer <[email protected]>
% All rights reserved.
% Minimal pgfplots version: 1.3
% 
% The latest updates can be retrieved from
%   http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
% where you can also make suggestions and rate matlab2tikz.
% 
\begin{tikzpicture}

\begin{axis}[%
width=15cm,
height=10cm,
scale only axis,
xmin=735784.472,
xmax=735784.6382,
xtick={735784.5,735784.5625,735784.625},
xticklabels={{04.06. 12:00:00},{04.06. 13:30:00},{04.06 15:00:00}},
ymin=-0.15,
ymax=3.5
]
\addplot [color=red,only marks,mark=x,mark options={solid},forget plot]
  table[row sep=crcr]{%
735784.472210648    0\\
735784.563194444    3.09\\
735784.6125 0.54\\
735784.638194444    0\\
};
\addplot [color=blue,solid,forget plot]
  table[row sep=crcr]{%
735784.474305556    0\\
735784.522222222    2.92188333278572\\
735784.578472222    3.08013114814648\\
735784.635416667    0\\
};
\end{axis}
\end{tikzpicture}%

我已经尝试过,restrict x to domain但没有成功。

答案1

原因是由于数字很大但差异很小,在某些时候内部计算超出了TeX 中的尺寸限制。一个可能的解决方案是将坐标转换为较小的域。这可以通过添加来实现

\pgfplotsset{x coord trafo/.code={\pgfmathparse{#1-735784.4}\pgfmathresult}}

其中最后一个数字必须根据您的情况进行调整。不知何故,这仍然只有在删除 x 限制和刻度后才有效,结果是example.tikz

% This file was created by matlab2tikz v0.4.7 running on MATLAB 8.3.
% Copyright (c) 2008--2014, Nico Schlömer <[email protected]>
% All rights reserved.
% Minimal pgfplots version: 1.3
% 
% The latest updates can be retrieved from
%   http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
% where you can also make suggestions and rate matlab2tikz.
% 
\begin{tikzpicture}
\pgfplotsset{
x coord trafo/.code={\pgfmathparse{#1-735784.4}\pgfmathresult}}

\begin{axis}[%
width=15cm,
height=10cm,
scale only axis,
ymin=-0.15,
ymax=3.5
]
\addplot [color=red,only marks,mark=x,mark options={solid},forget plot]
  table[row sep=crcr]{%
735784.472210648    0\\
735784.563194444    3.09\\
735784.6125 0.54\\
735784.638194444    0\\
};
\addplot [color=blue,solid,forget plot]
  table[row sep=crcr]{%
735784.474305556    0\\
735784.522222222    2.92188333278572\\
735784.578472222    3.08013114814648\\
735784.635416667    0\\
};
\end{axis}
\end{tikzpicture}%

不过,如果能改变限制和刻度就更好了。如果你知道怎么做,请随意添加!

在此处输入图片描述

相关内容