pgfplots を使用して棒グラフを作成したいと思います。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread[col sep=comma] {
name,value
A,1
B,2
C,1
D,3
}\mytable
\pgfplotsset{%
compat=1.8,
ybar,
compat/show suggested version=false,
}
\begin{tikzpicture}
\begin{axis}[
xlabel=name,
xtick=data,
xticklabels from table={\mytable}{name},
ylabel=value
]
\addplot table[x=name,y=value] {\mytable};
\end{axis}
\end{tikzpicture}
\end{document}
しかし、以下のエラーが発生しました:
! Package PGF Math Error: Could not parse input 'A' as a floating point number,
sorry. The unreadable part was near 'A'..
See the PGF Math package documentation for explanation.
Type H <return> for immediate help.
...
l.26 ...\addplot table[x=name,y=value] {\mytable};
答え1
未使用のパッケージを削除したり、行区切りを指定したりするなど、いくつか試してみた結果、次のようになりました。
- 棒グラフは1次元である
- 1つの値だけを指定します
\begin{tikzpicture}
\begin{axis}[
xlabel=name,
xtick=data,
xticklabels from table={\mytable}{name}, % <<<
ylabel=value
]
\addplot table[x=value] {\mytable}; % <<<
\end{axis}
\end{tikzpicture}
を指定するとy=value
、再度エラーが発生します。
\addplot table[y=value] {\mytable};
名前 (文字) を値として持つ列を読み取ろうとすると、エラーが発生します。
\addplot table[x=name ...
% https://tex.stackexchange.com/questions/705829/plot-bar-chart-with-pgfplots
\documentclass{standalone}
%\usepackage{tikz}
\usepackage{pgfplots}
%\pgfplotsset{compat=newest}
%\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread[row sep=\\,col sep=comma] {
name,value\\
A,1\\
B,2\\
C,1\\
D,3\\
}\mytable
\pgfplotsset{%
compat=1.8,
ybar,
compat/show suggested version=false,
}
\begin{tikzpicture}
\begin{axis}[
xlabel=name,
xtick=data,
xticklabels from table={\mytable}{name}, % <<<
ylabel=value
]
\addplot table[x=value] {\mytable}; % <<<
\end{axis}
\end{tikzpicture}
\end{document}