情况与问题
这个问题是一个后续问题,基于 marmots 的回答这个问题。那里描述了一般情况。我修改了标记,如下所示这个答案,但不能使它们依赖于class
-column。
问题
如何
marker option
改变scatter/classes
-class
我尝试了一些变化,例如移动mark options
类部分内的所有内容,结果只剩下“p”而不是其他字母(或数字)。
这似乎相关,但我不知道如何进行映射。
例如,在这个例子中,a 和 b 应该出现在一个方框中,而 c、d 应该出现在一个三角形中。但是,设置circle
不会被覆盖。
MWE
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usepgfplotslibrary{polar}
\usepackage{filecontents}
\begin{filecontents*}{radar.csv}
angle,radius,class,name
130, 4, 1, a
348, 3, 1, b
212, 5, 2, c
56, 2, 2, d
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
width=8cm, height=8cm,
visualization depends on={value \thisrow{name} \as \labelname}
]
\addplot[
scatter, only marks,
point meta=explicit symbolic,
mark options={
text mark=\labelname,
text mark as node=true,
text mark style={circle,inner sep=1pt,draw}
},
scatter/classes={
1={
mark = text,
mark options={
text mark style={square,inner sep=2pt,draw}
},
blue
},
2={
mark = text,
mark options={
text mark style={*triangle}
},
red
}
}
]
table[ x=angle, y=radius, meta=class, col sep=comma
] {radar.csv};
\end{polaraxis}
\end{tikzpicture}
\end{document}
答案1
我可以提供以下内容,我在其中查找了一些内容这个答案:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usepgfplotslibrary{polar}
\usepackage{filecontents}
\begin{filecontents*}{radar.csv}
angle,radius,class,name
130, 4, 1, a
348, 3, 1, b
212, 5, 2, c
56, 2, 2, d
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}[
width=8cm, height=8cm,
visualization depends on={value \thisrow{name} \as \labelname}
]
\addplot[scatter/classes={
1={mark=text,text mark=\labelname,blue,text mark as node=true,
text mark style={rectangle,inner sep=2pt,draw}
},
2={mark=text,text mark=\labelname,red,text mark as node=true,
text mark style={circle,inner sep=2pt,draw}}
},
scatter,draw=none,
scatter src=explicit symbolic]
table[x=angle, y=radius, meta=class, col sep=comma]
{radar.csv};
\end{polaraxis}
\end{tikzpicture}
\end{document}
但是,我不确定我text mark style={square,...}
是否理解text mark style={*triangle}
,但这可能只是我的看法。