我正在尝试使用循环绘制一些数据,但当我尝试提取列标题并将其作为子图例时遇到了一些问题。有人知道如何解决这个问题吗?
\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\usepackage{pgfplotstable}
\definecolor{skyblue1}{rgb}{0.447,0.624,0.812}
\pgfplotstableread{
time y c q r pi r_F efp z_E z_F
1 0.105597 0.000553 0.007493 0.002008 0.001352 41.251213 0.015177 0.015177 41.251213
2 0.003563 0.003143 -0.001881 0.000742 -0.000582 0.541130 -0.011564 -0.001644 0.545364
3 0.003204 0.004251 -0.000223 0.000048 -0.000367 -0.016199 0.000767 0.001246 -0.016337
4 0.003582 0.004518 0.000531 -0.000285 -0.000218 -0.115549 0.000642 0.000411 -0.115694
5 0.003762 0.004358 0.000743 -0.000414 -0.000126 -0.158629 0.000492 -0.000035 -0.158753
}\modelresponses
\pgfplotstablegetcolsof{\modelresponses}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size=3 by 2,vertical sep= 1.5cm},width=0.45\textwidth,ybar]
\pgfplotsinvokeforeach{1,2,3,4,5,6,7,8,9}{%
\pgfplotstablegetcolumnnamebyindex{#1}\of{\modelresponses}\to{\mycolname};
\nextgroupplot[title=\mycolname,grid=major];
\addplot[very thick,smooth,skyblue1] table [ x index=0, y index=#1] {\modelresponses};
}
\end{groupplot}
\end{tikzpicture}
\end{document}
答案1
下划线需要数学模式。因此,一个快速解决方法是将标题变量放在美元符号之间,即将相应的行替换为
\nextgroupplot[title=$\mycolname$,grid=major];
但是,仅仅出于好奇,如果有人能找到一种方法来传递包含数学字符的标题名称而不\pi,\psi
进行扩展(因为我怀疑这是问题所在),那就太好了。