LaTeXで表の中の棒グラフを描画
LaTeXを文書中の表の中などでデータを可視化するために手軽に棒フラフを書けるようにする。[xcolor.sty: LaTeX パッケージ]のサイトの「booktabs.styを伴う。」が元ネタ。
棒グラフを実現するために以下の内容をプリアンブルに記入。
\newlength{\basis}\setlength{\basis}{10cm} \newlength{\barlength}
\newcommand*{\barchart}[1]{%
\setlength{\barlength}{0.01\basis}\setlength{\barlength}{#1\barlength}%
\textcolor{black!40}{\rule{\barlength}{1.5ex}} #1}
元のサイトのサンプルは\Bar
コマンドで定義されている。このコマンド名はamsmath.sty
の同名コマンドと競合する。そのため,\Bar
を\barchart
という名前に置き換える。また,単位%は邪魔なので除去した。
これにより,以下のコマンドで長さ10 cmの横棒グラフが書ける。
\barchart{100}
ただし,長さの都合から棒グラフで使う値は0–100程度の範囲の値が適している。この範囲外なら、うまく%や正規化してこの範囲に値を収める。値をマイナスにすると棒グラフが表示されない。
\barchart{-10}
表の中に書いてそれっぽく見せるには例えば以下のようにする。グラフを書くところを左寄せにすることが大事。
\begin{center}
\begin{tabular}{ll}
\toprule
year & value {[}\%{]}\tabularnewline
\midrule
2000 & \barchart{50}\tabularnewline
\midrule
2010 & \barchart{30}\tabularnewline
\bottomrule
\end{tabular}
\par
\end{center}
サンプル全体
\documentclass[uplatex]{jsarticle}
% \file barchart.tex
% \author SENOO, Ken
% \copyright CC0
% \brief 以下のコマンドでタイプセットする。
% uplatex barchart && dvpidfmx barchart
\usepackage{xcolor,booktabs}
\newlength{\basis}\setlength{\basis}{10cm} \newlength{\barlength}
\newcommand*{\barchart}[1]{%
\setlength{\barlength}{0.01\basis}\setlength{\barlength}{#1\barlength}%
\textcolor{black!40}{\rule{\barlength}{1.5ex}} #1}
\begin{document}
\barchart{100}
\barchart{-10}
\begin{center}
\begin{tabular}{ll}
\toprule
year & value {[}\%{]}\tabularnewline
\midrule
2000 & \barchart{50}\tabularnewline
\midrule
2010 & \barchart{30}\tabularnewline
\bottomrule
\end{tabular}
\end{center}
\end{document}
実行結果