在这回答提供了多个函数图的示例,使用PGF/TikZ
和datavisualization
。文档似乎没有处理以下问题:
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=-4
和max value=4
受支持,但它们不会阻止绘图过度调整,如 pgfmanual 的第 77.2.3 节中所述。我也开始玩键盘之at start survey
类的东西,试图剪辑data visualization bounding box
。但这没有成功。所以最后我唯一能提供的是限制 tan 图的非常临时的方法是改为 plot ,它只取和max(min(tan(\value x r),4),-4)
之间的值。正如我上面提到的,将弧度转换为度数。-4
4
r
\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}
也许其他人可以使注释掉的部分起作用......