如何在 TikZ 数据可视化中强制针角?

如何在 TikZ 数据可视化中强制针角?

请注意,我不是使用pin节点选项我如何强制 TikZ 引脚角度?二维图中的 TikZ 节点引脚角度,而是pin in data在 TikZ 数据可视化中使用该选项。

我有一条带有固定标签的曲线:

y = f(x) 的图,标记为

\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}

相关内容