我有一个相当复杂的 pgfplots 图混合const plot
,ybar stacked
并且由于坐标不匹配,它不喜欢我导入的数据集。
但是图表是正确的,而且正是我需要的。
我怎样才能:
- 增加 MikTeX 的不间断错误限制?
- 告诉 LaTeX 忽略这个错误?
- 从下面的代码中消除这个错误吗?
(我已经向 Christian 提交了将错误更改为警告的请求。)
下面是一个接近我的要求的简单示例,它也会抛出三个典型错误:
\documentclass[tikz,english]{article}
\usepackage{pgfplots}
\pgfplotsset{small, width=15cm, height=6cm,compat=1.7}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar stacked]
\addlegendimage{line legend,thick,legend image code/.code={
\draw[#1] (0cm,0cm) -- (0.4cm,0cm);}};
\addlegendentry{target};
\addlegendimage{draw=black, fill=yellow}
\addlegendentry{S1};
\addlegendimage{draw=black, fill=red}
\addlegendentry{S2};
\addplot[const plot, thick] coordinates {
(1,1.8559703)
(2,2.8559703)
(3,3.5301677)
(4,4.3050655)
(5,4.3050655)
};
\addplot[const plot, draw=none, forget plot] coordinates {
(1,-1.8559703)
(2,-2.8559703)
(3,-3.5301677)
(4,-4.3050655)
(5,-4.3050655)};
\addplot [draw=black, fill=yellow] coordinates {
(1.5,2.8559703)
(2.5,2.8559703)
(3.5,2.5301677)
(4.5,1.3050655)};
\addplot[draw=black, fill=red] coordinates {
(1.5,1.8559703)
(2.5,2.8559703)
(3.5,2.5301677)
(4.5,2.3050655)};
\legend{target, s1,s2};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
我假设您使用的行\pgfplotstableread
的列数过多或过少。
在这种情况下,您可以通过覆盖异常代码来抑制错误。
就您而言,这是一个“不受支持的操作”,可以按如下方式覆盖:
\documentclass[a4paper]{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\pgfkeys{
/pgfplots/exception/unsupported operation/.code={},
}
\pgfplotstableread{
x y z
1 1 1
2 2 2
3 3 3 3
3 3
}\loadedtable
\addplot table {\loadedtable};
\end{axis}
\end{tikzpicture}
\end{document}
似乎在排版表格时也使用了太多这种异常情况。我最终会改正这个问题。
目前,您应该谨慎使用此键:如果 pgfplots 无法像您希望的那样正常恢复,则禁用错误可能会产生意想不到的副作用。“谨慎”意味着:尝试将其应用限制在较小的上下文中,不要全局覆盖它。特别是,不要在上下文中禁用它\pgfplotstabletypeset
。此备注适用于 pgfplots 1.8。