\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
symbolic y coords={A},
ytick={A}, % I want to have B here
]
\addplot+[only marks] coordinates {
(1,{A})
};
\end{axis}
\end{tikzpicture}
\end{document}
我希望B
第一步是让勾号标签显示出来。输入B
指示的位置会抛出:
Package pgfplots Error: Sorry, the input coordinate `B' has not been defined mething like [normalized]B?. ]
如果可能的话,我希望(作为第二步)标签B
周围有一个漂亮的圆圈,我用宏在文档的其他地方绘制这个圆圈:
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=1pt,font=\footnotesize] (char) {#1};}}
打字ytick={\circled{B}}
导致pdfLaTeX
挂起。
答案1
感谢@percusse 的提示,在这里回答我自己的问题。需要指定symbolic y coords
,ytick
和 yticklabels
. 但不知道为什么。
\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{pgfplots}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=1pt,font=\footnotesize] (char) {#1};}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
symbolic y coords={{A},{C}},
ytick={A,C},
yticklabels={\circled{B1},\circled{B2}},
]
\addplot+[only marks] coordinates {
(1,{A})
};
\addplot+[only marks] coordinates {
(2,{C})
};
\end{axis}
\end{tikzpicture}
\end{document}