我正在尝试创建一个只包含几个点的图。但我收到很多错误消息,例如Undefined control sequence. \end{axis}
有人可以解释一下我的代码出了什么问题吗?
\documentclass[
12pt, % font size
a4paper, % paper format
oneside, % one-sided pages
]{article}
% Graph
\usepackage{pgfplots}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel=Tragweite,
ylabel=Wahrscheinlichkeit,
xmin=0,
ymin=0,
xmax=11,
ymax=11
]
\addplot[
mark=*,
only marks,
point meta=explicit symbolic,
nodes near coords={
\labelcheck{\pgfplotspointmeta}
}
] table[meta=label] {
x y label
3 6 1
5 6 2
6 4 3
2 8 4
1 9 5
3 5 6
7 3 7
};
\end{axis}
\end{tikzpicture}
\caption{Risiken}
\label{fig:risiken}
\end{figure}
\end{document}
答案1
您的代码中唯一不常见的是\labelcheck
宏。这不是 的一部分pgfplots
,而是由他在回答中的符号 1 定义的PGF 散点图中的点标签列表\labelcheck
。因此,如果您从该答案中添加(和)的定义,\labelonly
您的代码就可以正常工作。
现在,该宏的全部目的是仅打印宏node near coord
定义的特定标签(元值)的\labelonly
。请注意,代码中的meta
值是 A 到 F,并且只\labelonly{BDF}
显示这三个标签。您有meta
1 到 7 的值,因此\labelonly{BDF}
当然不会打印任何内容。将其修改为\labelonly{236}
,然后打印这些标签。
不过据我了解,您希望打印所有标签,因此所有这些内容都是不必要的——打印所有标签是默认设置。因此,您需要做的就是删除,然后也={\labelcheck{\pgpflotspointmeta}}
可以删除 的定义。\labelcheck
\documentclass[
12pt, % font size
a4paper, % paper format
oneside, % one-sided pages
]{article}
\usepackage{pgfplots}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel=Tragweite,
ylabel=Wahrscheinlichkeit,
xmin=0,
ymin=0,
xmax=11,
ymax=11
]
\addplot[
mark=*,
only marks,
point meta=explicit symbolic,
nodes near coords % removed the \labelcheck stuff
] table[meta=label] {
x y label
3 6 1
5 6 2
6 4 3
2 8 4
1 9 5
3 5 6
7 3 7
};
\end{axis}
\end{tikzpicture}
\caption{Risiken}
\label{fig:risiken}
\end{figure}
\end{document}