.csv ファイル内のデータを TiKZ のマクロの引数として使用する

.csv ファイル内のデータを TiKZ のマクロの引数として使用する

私が作成した TiKZ マクロの引数として使用したい数値を含む .csv ファイルがあります。いくつかの異なるアプローチを試しましたが、引数の拡張で問題が発生しているようです (本当に(もう一度試したくないのですが\expandafter)TiKZ マクロの引数としてマクロを使用せずにファイルからデータを呼び出す方法がわからないためです。

MWE:

\begin{filecontents*}{data.csv}
10,4.2,green
20,6.4,blue
30,5.4,red
\end{filecontents*}

\documentclass{standalone}
\usepackage{tikz}

\newcommand{\spoke}[3]{%true angle, radius, colour
    \fill[#3] (450-#1-5:0) -- (450-#1-5:#2) -- (450-#1-5:#2) arc (450-#1-5:450-#1+5:#2) -- (450-#1+5:0) -- (450-#1+5:#2) -- cycle;
}

\begin{document}
\begin{tikzpicture}

\spoke{10}{4.2}{green}   %how do I get these from the file?

\end{tikzpicture}
\end{document}

私は Overleaf を使用しているので、パッケージやアプローチについては柔軟に対応できます。入力も完全に制御できるので、.csv を使用するよりも簡単な方法があれば、喜んで代わりにそれを使用します。

答え1

パッケージcsvsimpleはこれを非常に簡単に行うことができます。:) また、TikZコードの提案も追加しました。シュレディンガーの猫あなたの質問にコメントしてください。

\documentclass{standalone}
\begin{filecontents*}{\jobname-data.csv}
angle,radius,colour
10,4.2,green
20,6.4,blue
30,5.4,red
\end{filecontents*}
\usepackage{csvsimple}
\usepackage{tikz}

\newcommand{\spoke}[3]{%true angle, radius, colour
\fill[#3] (450-#1-5:0) -- (450-#1-5:#2) 
    arc[start angle=450-#1-5,end angle=450-#1+5,radius=#2]; 
% modified and more modern code here from Schrödinger'scat in the comments
}

\begin{document}
\begin{tikzpicture}
\csvreader[head to column names]{\jobname-data.csv}{}{
\spoke{\angle}{\radius}{\colour}   %how do I get these from the file?
}
\end{tikzpicture}
\end{document}

コードの出力

関連情報