PGF/TikZ 图:绘制函数的语法和限制范围

PGF/TikZ 图:绘制函数的语法和限制范围

回答提供了多个函数图的示例,使用PGF/TikZdatavisualization文档似乎没有处理以下问题:

1)对于每个图,x范围定义为:

var x : interval [-0.5*pi:4];

这样,无论函数是什么,无论它在x范围内达到什么值,它都将被强制绘制。

是否也可以限制y绘制的范围?我试过

func y = tan(\value x r) : interval [0:4];

(以获得不高于4和不低于的函数值0)但它给出错误。限制轴对图没有影响。

2)在

func y = sin(\value x r);

final 是r用来做什么的?如果我尝试删除它,则图不正确。在哪里可以找到有关此语法的信息?

答案1

更新:经过一番研究发现,这个问题已经被问过了这里,但回答表明它实际上不起作用。更详细地说,min value=-4max value=4受支持,但它们不会阻止绘图过度调整,如 pgfmanual 的第 77.2.3 节中所述。我也开始玩键盘之at start survey类的东西,试图剪辑data visualization bounding box。但这没有成功。所以最后我唯一能提供的是限制 tan 图的非常临时的方法是改为 plot ,它只取和max(min(tan(\value x r),4),-4)之间的值。正如我上面提到的,将弧度转换为度数。-44r

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}
\begin{tikzpicture}
\datavisualization [scientific axes=clean,
                    y axis={grid,min value=-4,max value=4},
                    visualize as smooth line/.list={sin,cos,tan},
                    style sheet=strong colors,
                    style sheet=vary dashing,
                    sin={label in legend={text=$\sin x$}},
                    cos={label in legend={text=$\cos x$}},
                    tan={label in legend={text=$\tan x$}},
                    data/format=function,
%                   at start survey={\clip (data visualization bounding
%                   box.south west) rectangle (data visualization bounding box.north east);}
                    ]
data [set=sin] {
  var x : interval [-0.5*pi:4];
  func y = sin(\value x r);
}
data [set=cos] {
  var x : interval [-0.5*pi:4];
  func y = cos(\value x r);
}
data [set=tan] {
  var x : interval [0:4];
  func y = max(min(tan(\value x r),4),-4);
};

\end{tikzpicture}
\end{document}

也许其他人可以使注释掉的部分起作用......

相关内容