我对 latex 和 pgfplots 还不熟悉,但必须绘制一个相当复杂的图。我需要一组 (120+) 小提琴图,如果我可以提供文件中的数据(任何格式,这可能会有帮助),也许提供 number_of_plots_per_group=20,并在 for 循环中生成图,那就太好了。最终结果应该看起来像:
一些可供使用的示例数据可能如下所示:
A 1.0 2.0 3.0 0.5
B 0.3 1.2 2.4
C 1.0 2.0 3.0 0.5 0.3 1.2 2.4
谜题的任何部分都会对我有所帮助。首先,使用一个更简单的例子,我无法弄清楚如何在不拆分文件的情况下将一个数据文件中的数据自动分布到多个图中。在下面的例子中,如何自动分配条目?
\documentclass{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.18}
\usepackage{tikzviolinplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group name=myplot,
group size= 1 by 2,
vertical sep=2cm, % Adjust vertical spacing between plots
},
ybar,
height=5cm,
width=\textwidth,
xtick=data, % Use the data points as x ticks
% xticklabels from table={\mydata}{Category}, % Use the 'Category' column for x tick labels
xticklabel style={rotate=45, anchor=east}, % Rotate the x tick labels for better visibility
]
\pgfplotstableread[]{%
Category Value
R115 0.0250522
R116 0.010669
R12 0.0168477
R1224YDZ 0.0453421
R123 0.0131629
R1233ZDE 0.0326974
}\mydata
\pgfplotsforeachungrouped \x in {1,2} {
\nextgroupplot[title=type\x, ylabel={}]
\addplot table [x expr=\coordindex, y=Value]{\mydata};
};
\end{groupplot} ;
\end{tikzpicture}
\end{document}
对于文件中的以下数据:
Category Value
R115 0.0250522
R116 0.010669
R12 0.0168477
R1224YDZ 0.0453421
R123 0.0131629
R1233ZDE 0.0326974
编辑
我添加了几行代码,现在就可以编译了,这是 @MS-SPO 的正确要求。同时,我得到了一个可以工作的循环 -> 更近了一步 :)