Может кто-нибудь показать мне, как это центрировать group plot
? Я перепробовал все приемы из книги tex.stackexchange подобных постов (например,Как центрировать большие рисунки в LaTeX и как исправить короткие выравниваемые строки?).
\documentclass[]{article}
\usepackage{pgfplots, alphalph}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{groupplot}[
group style={group size=3 by 2, vertical sep=70pt,
ylabels at=edge left
},
view={0}{90},
width=5.2cm,
height=5.2cm,
scale only axis,
scaled ticks = false,
tick label style={/pgf/number format/fixed},
title={My title},
xlabel={x-axis},
ylabel={y-axis}],
unbounded coords=jump]
]
\nextgroupplot [title={\it{Title 1}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 2}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 3}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 4}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 5}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\end{groupplot}
\end{tikzpicture}
\end{figure}
\end{document}
решение1
Ваши участки слишком широкие. Вы можете попробовать разместить 2 участка в ряд вместо 3. Однако всегда есть этот прием с ящиками, который можно использовать.
\documentclass[]{article}
\usepackage{pgfplots, alphalph}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}
\makebox[\textwidth]{%
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{groupplot}[
group style={group size=3 by 2, vertical sep=70pt,
ylabels at=edge left
},
view={0}{90},
width=5.2cm,
height=5.2cm,
scale only axis,
scaled ticks = false,
tick label style={/pgf/number format/fixed},
title={My title},
xlabel={x-axis},
ylabel={y-axis}],
unbounded coords=jump]
]
\nextgroupplot [title={\it{Title 1}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 2}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 3}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 4}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 5}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\end{groupplot}
\end{tikzpicture}
}
\end{figure}
\end{document}
Если в этом случае вы хотите отцентрировать последние два графика, вы можете использовать подходящую ширину для всех графиков (чтобы знать, насколько смещать) и использовать xshift
как
\nextgroupplot [xshift=1.2in,title={\it{Title 4}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [xshift=1.2in,title={\it{Title 5}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
С table
:
\documentclass[]{article}
\usepackage{pgfplots, alphalph}
\usepgfplotslibrary{groupplots}
\usepackage{filecontents}
\begin{filecontents*}{mydata.dat}
A B
1 4
2 6
3 9
4 2
5 3
\end{filecontents*}
\begin{document}
\begin{figure}
\makebox[\textwidth]{%
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{groupplot}[
group style={group size=3 by 2, vertical sep=70pt,
ylabels at=edge left
},
view={0}{90},
width=5.2cm,
height=5.2cm,
scale only axis,
scaled ticks = false,
tick label style={/pgf/number format/fixed},
title={My title},
xlabel={x-axis},
ylabel={y-axis}],
unbounded coords=jump]
]
\nextgroupplot [title={\it{Title 1}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
\nextgroupplot [title={\it{Title 2}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
\nextgroupplot [title={\it{Title 3}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
\nextgroupplot [title={\it{Title 4}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
\nextgroupplot [title={\it{Title 5}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
\end{groupplot}
\end{tikzpicture}
}
\end{figure}
\end{document}
и с
\nextgroupplot [xshift=1.2in,title={\it{Title 4}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
\nextgroupplot [xshift=1.2in,title={\it{Title 5}}]
\addplot[black, thick, mark=o, only marks]
table[x=A,y=B]{mydata.dat};
решение2
Другой вариант: добавить \hspace*{-4cm}
(отрегулируйте, сколько сантиметров вы хотите, чтобы добиться хорошего центрирования). Например:
\documentclass[]{article}
\usepackage{pgfplots, alphalph}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}
\hspace*{-4cm}
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{groupplot}[
group style={group size=3 by 2, vertical sep=70pt,
ylabels at=edge left
},
view={0}{90},
width=5.2cm,
height=5.2cm,
scale only axis,
scaled ticks = false,
tick label style={/pgf/number format/fixed},
title={My title},
xlabel={x-axis},
ylabel={y-axis}],
unbounded coords=jump]
]
\nextgroupplot [title={\it{Title 1}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 2}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 3}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 4}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\nextgroupplot [title={\it{Title 5}}]
\addplot[black, thick, mark=o, only marks]
coordinates {
};
\end{groupplot}
\end{tikzpicture}
\end{figure}
\end{document}