web-dev-qa-db-ja.com

LaTeXで棒グラフを描く最良の方法は?

ここでGoogleのようにStack Overflowでそれを探していましたが、描画するパッケージがたくさん見つかりましたが、それは複雑なタスクのようですので、バーを描画し、データを関連付けるのに最も適切なパッケージを知りたいですそれ。また、コード例を探していましたが、運がありませんでした。

33
Tae

pgfplots パッケージの簡単な仕事のように思えます。マニュアルのセクション4.5には、最初から多くの例が含まれており、すべてが最初から順を追って説明されています。さらにpgfplotsの例が必要な場合は、 TeXample でのプロット専用のセクションが興味深いかもしれません。バープロットはありませんが、機能のいくつかのニース(およびより複雑な)例が含まれています。

コードの例については、マニュアルからコピーアンドペーストすることもできますが、それでもこの投稿にあまり追加されないと思います。

編集:Matlabを使用する場合、 matlab2tikz 。この方法により、実際のコードを心配することなくプロットをエクスポートできます。棒グラフは可能になるはずですが、私はまだその機能を使用していませんので、癖については知りません。このMatlabスクリプトを使用したプロットIdidエクスポートは完璧で、必要な一貫性と柔軟性が得られます:)。

25
Pieter

パッケージ:bchart

サンプルコード:

\documentclass[varwidth=true, border=2pt]{standalone}

\usepackage{bchart}

\begin{document}
    \begin{bchart}[step=2,max=10]
        \bcbar{3.4}
            \smallskip
        \bcbar{5.6}
            \medskip
        \bcbar{7.2}
            \bigskip
        \bcbar{9.9}
    \end{bchart}
\end{document}

結果:

bchart example

パッケージ:pgfplots

サンプルコード:

% Source: https://tex.stackexchange.com/a/8584/5645
\documentclass[varwidth=true, border=2pt]{standalone}

\usepackage{pgfplots}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            symbolic x coords={a small bar, a medium bar, a large bar},
            xtick=data
          ]
            \addplot[ybar,fill=blue] coordinates {
                (a small bar,   42)
                (a medium bar,  50)
                (a large bar,   80)
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

結果:

pgfplots

my GitHub repository にさらに例を追加する予定です。 tex.stackexchange.com tag:bar-chart にも興味があるかもしれません。

40
Martin Thoma

これは犠牲と見なされるかもしれませんが、実際にはmatlab、Excelまたは他のツールを使用してプロットを生成することはそれほどひどくなく、単にPDF/jpgを含めるだけです。pgfplotsはよりエレガントなオプションですが、最速ではないかもしれません。

7
Suresh