我正在使用 LaTeX、TikZ 和 PGFplots 来生成条形图,其中是从文件xticklabel
中读取的。testdata.dat
下面的例子中,xticklabel
是单行文本,即Big-Bed, Small-Bed
。现在我想将它们分别改为双行文本Big \\ Bed, Small \\ Bed
。
不幸的是,当我用 替换 时-
,\\
我testdata.dat
发现编译时出现一些错误。可能\\
不允许。有谁能帮我把文本改成两行文本?testdat.dat
fileconcents
xticklabel
\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{testdata.dat}
Label X-Position Height
Big-Bed 1 15
Small-Bed 2 20
\end{filecontents}
%
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
xtick=data,% crucial line for the xticklabels directive
ymin=0,
xticklabels from table={testdata.dat}{Label}
]
\addplot table [
x=X-Position,
y=Height
] {testdata.dat};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
如果要在节点名称中使用换行符,则必须让 TikZ 切换到某种文本格式模式。最简单的方法是进行对齐声明,以便它注意内容。您还可以将敏感的节点单元内容括起来以保护它们(可能有一些限制)
\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{testdata.dat}
Label X-Position Height
{Big\\BedHotel\\\$\$} 1 15
{Small\\Bed\&Breakfast} 2 20
\end{filecontents}
%
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
xtick=data,% crucial line for the xticklabels directive
ymin=0,
xticklabels from table={testdata.dat}{Label},
xticklabel style={align=center}
]
\addplot table [
x=X-Position,
y=Height
] {testdata.dat};
\end{axis}
\end{tikzpicture}
\end{document}