在编译时在 pgfplots 中动态创建图形

在编译时在 pgfplots 中动态创建图形

我正在尝试创建一个二维图,其中的x-label 刻度是图片,类似于发布在这里,不同之处在于图像是在编译时以参数化方式创建的。x标签是图形,实际上依赖于确定图形形状的某些输入 CSV 文件。下面仅作为示例说明。可以看出,箭头是我的x标签,它们在不同的图形中。 在此处输入图片描述

我该如何解决这个问题?我尝试定义所需的参数,例如

\newcommand{\PSI}{45}
\newcommand{\PHI}{45}

\newcommand{\cosPSI}{cos(\PSI)}
\newcommand{\sinPSI}{sin(\PSI)}
% These are just example to show my approach to this problem
% ...
\newcommand{\myFirstLabel}{\tikz \draw (0,0) -- (1,1);}

我也尝试过使用:

\newcommand{\myFirstLabel}{\begin{tikspicture} ...}

但编译器对此有抱怨。我想看看是否可以有类似下面的内容,以便每个新命令都使用我在序言中定义的参数创建图形标签。

xticklabels={\myLabel2, \myLabel2, ...}

使用 LateX 可以实现这个吗?

答案1

它应该可以正常工作。

\documentclass[]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\def\mylabel#1{\tikz\filldraw[#1] (0,0)circle (3mm);}
\begin{axis}[
xtick={-2,0,2},
xticklabels={\mylabel{red},\mylabel{blue},\mylabel{gray}}
]
\addplot {x};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容