请注意,我不是使用pin
节点选项我如何强制 TikZ 引脚角度?和二维图中的 TikZ 节点引脚角度,而是pin in data
在 TikZ 数据可视化中使用该选项。
我有一条带有固定标签的曲线:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}
\tikz[scale=4]
\datavisualization[
school book axes,
visualize as smooth line=myfunction,
myfunction={pin in data={text=$f(x)$, when=x is 0.5, pin angle=90}}]
data [set=myfunction, format=function] {
var x : interval [0:1];
func y = \value x^2;
};
\end{document}
从我设置为 90 度可以推断pin angle
,我希望图钉完全垂直。我从 TikZ 手册(§ 61.8.2)中了解到,此标签实际上(与 一起pin length
)的作用是引入一个额外的标签的偏移量,在标签已被算法label in data
使用的任何偏移之后。因此,我们将对角线向量添加label in data
到我的垂直(pin angle=90
)向量中,但我们没有得到垂直合成向量。
我希望我的图钉垂直放置。我该如何实现呢?
答案1
标签的位置通过选项计算auto
。它旨在使标签漂浮的沿着曲线放置而不重叠。因此,为了安全起见,销钉边缘几乎与切线正交。
覆盖并不困难auto
,但可能会毁掉整个引擎。一种解决方法是使用临时点(label visualizer coordinate)
来绘制您自己的图钉。此点位于最新标签引用的数据点。
(不过,您仍然可以选择其他方式,例如重写pin in data
/ label in data
。请参阅tikzlibrarydatavisualization.code.tex
了解其原始定义。)
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}
\tikz[scale=4]{
\datavisualization[
school book axes,
visualize as smooth line=myfunction,
myfunction={label in data={text=, when=x is 0.5, pin angle=90}}]
data [set=myfunction, format=function] {
var x : interval [0:1];
func y = \value x^2;
};
\draw[red](label visualizer coordinate)--+(0,.1)node[above]{$f(x)$};}
\end{document}