以简单的方式生成图表

以简单的方式生成图表

昨天我学习了如何使用制作简单图表tikzpicture,我对结果非常满意:

    \begin{tikzpicture}[thick,scale=0.6]
    \begin{axis}[
        xlabel=$\delta$,
        ylabel=$U_2$]
    \addplot[smooth,mark=*,blue] plot coordinates {
        (1,4)
        (4,2)
    };
    \addlegendentry{$\beta_2$}
    \addplot[smooth,color=red,mark=x]
        plot coordinates {
            (1,0)
            (4,9)
        };
    \addlegendentry{$\beta_1$}
    \end{axis}
    \end{tikzpicture}

但是现在我必须制作更复杂的图表(例如箱线图),我无法想到手动完成。到目前为止,我有一个 Matlab 脚本,它读取一定量的数据并生成一个图形。我排除将其保存为 .png 的可能性,因为我想要文档中的矢量图像。
我发现更好的方法是使用matlab2tikz。我试过了,但它给了我错误。因为我无法访问较新版本的 Matlab(我认为它不会解决任何问题,因为生成的图形没有错误。错误是在我编译 LaTeX 代码时出现的。)并且因为我不喜欢无休止地处理解析器错误(我时间不多,所以我不能冒险在这上面浪费太多时间)我正在寻找另一种方法来解决这个问题。

当其他人想要从 matlab/octave/gnuplot 添加矢量图时,他们会怎么做?这是matlab2tiks黄金标准还是还有其他方法?

(我知道我可以用一个不太复杂的脚本从原始数据计算出我个人的 tikz 箱线图,而且我喜欢这个想法,但我猜是否已经有某种东西可以做到这一点)

答案1

箱线图在PGFPLOTS 手册。

就像这样:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepgfplotslibrary{statistics}
\begin{document}

\begin{tikzpicture}
  \begin{axis}
    [
    ytick={1,2,3},
    yticklabels={Index 0, Index 1, Index 2},
    ]
    \addplot+[
    boxplot prepared={
      median=1,
      upper quartile=1.2,
      lower quartile=0.4,
      upper whisker=1.5,
      lower whisker=0.2
    },
    ] coordinates {};
    \addplot+[
    boxplot prepared={
      median=2,
      upper quartile=2.3,
      lower quartile=1.5,
      upper whisker=2.7,
      lower whisker=1
    },
    ] coordinates {};
    \addplot+[
    boxplot prepared={
      median=0.7,
      upper quartile=1.4,
      lower quartile=0.5,
      upper whisker=1.9,
      lower whisker=0.1
    },
    ] coordinates {};
  \end{axis}
\end{tikzpicture}

\end{document}

箱形图

如果您确实想使用 matlab。请尝试将您的图像保存为 pdf 或 eps,因为它是基于矢量的,因此您不会损失质量。

相关内容