我使用matlab2tikz
带有水平误差线的图,但pgfplots
生成的文件不包含误差线,而其他一切都很好。我在 matlab 中像这样绘制我的数据:
y = [604.40,599.84,602.23,616.96,582.62,575.40,570.14,572.77,574.53];
x = [4.05 ,4.05 ,4.05 ,4.05 ,4.20 ,4.37 ,4.55 ,4.55 ,4.37 ];
ebars = [0.0563,0.0563,0.0326,0.0326,0.0350,0.0254,0.0437,0.0437,0.0254];
figure(1)
clf
errorbar(x,y,2*ebars,'horizontal','o')
legend('s1');
这给了我这个:
当我运行 matlab2tikz 时,生成的文件是:
\definecolor{mycolor1}{rgb}{0.00000,0.44700,0.74100}%
%
\begin{tikzpicture}
\begin{axis}[%
width=3.358in,
height=2.309in,
at={(0.563in,0.312in)},
scale only axis,
xmin=3.8,
xmax=4.8,
ymin=570,
ymax=620,
axis background/.style={fill=white},
legend style={legend cell align=left, align=left, draw=white!15!black}
]
\addplot [color=mycolor1, draw=none, mark=o, mark options={solid, mycolor1}]
table[row sep=crcr]{%
4.05 604.4\\
4.05 599.84\\
4.05 602.23\\
4.05 616.96\\
4.2 582.62\\
4.37 575.4\\
4.55 570.14\\
4.55 572.77\\
4.37 574.53\\
};
\addlegendentry{s1}
\end{axis}
\end{tikzpicture}%
什么可能会阻止我的误差线延续?
答案1
据我了解,Matlab 在 2016b 版中加入了对水平误差线的支持(基于https://se.mathworks.com/matlabcentral/answers/99308-how-can-i-create-horizontal-error-bars-in-matlab?)但查看matlab2tikz
代码,似乎仅支持垂直误差线。
我这里没有 Matlab 2016b 或更新版本,但在 2015b 中它可以按预期使用垂直误差线。
因此,导致错误栏无法使用的原因可能是 中没有实现错误栏matlab2tikz
。在以下位置发布功能请求:https://github.com/matlab2tikz/matlab2tikz/issues
附录:JMJ 报告了此事https://github.com/matlab2tikz/matlab2tikz/issues/1016