我是 LaTeX 的初学者,因此我可以更改的用于修改图形/图的变量数量让我感到困惑。我在网站上找到了类似的问题,但它们都提出了不同的解决方案,并向 TikZ 传递了完全不同的参数。
我发现下面的外观和感觉非常好:
\begin{tikzpicture}
\draw[->] (0.,0) -- (5,0) node[right] {$x$};
\draw[->] (0,0) -- (0,5) node[above] {$y$};
\draw[scale=0.5,domain=0:4,smooth, variable=\x,black] plot ({\x},{1/(\x*\x)});
\end{tikzpicture}
对于抛物线来说,这很好,但我想绘制f(x) = 1/x^2
,它在 附近开始表现得很奇怪,x = 0
因为 y 的值增加得非常快。我该如何解决这个问题并绘制它,以便它适合我定义的轴集?
答案1
您可以使用以下方法tikz
以及使用pgfplots
(我建议您使用):
笔记:
- 你必须小心除以零,尤其是
tikz
。pgfplots
有办法更优雅地处理这种情况。 所以,我在下面稍微更改了域以避免这个问题。 - 我建议使用额外的牙套:因此,
\x*\x
我建议你养成习惯,而不是(\x)*(\x)
。在这种特定情况下,这可能无关紧要,但如果你使用\x^2
哪个,那就很重要了可能对负值产生不正确的结果\x
。
代码:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\draw[->] (0.,0) -- (5,0) node[right] {$x$};
\draw[->] (0,0) -- (0,5) node[above] {$y$};
\draw[scale=0.5,domain=0.35:7,smooth, variable=\x,blue, thick] plot ({\x},{1/((\x)*(\x))});
\end{tikzpicture}
% ----------------
\begin{tikzpicture}
\begin{axis}[
xmin=0,
ymax=400,
domain=0.05:1,
samples=100,
axis y line=left,
axis x line=bottom,
%unbounded coords=discard,
]
\addplot [red, ultra thick] ({\x},{1/((\x)*(\x))});
\end{axis}
\end{tikzpicture}
\end{document}
答案2
PSTricks 中可以实现更自然的表达。因此,我们可以使用x^2
而不是(\x)*(\x)
。一些按键被保存了。
\documentclass[pstricks,border=30pt,12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\begin{psgraph}[algebraic,Dy=25]{->}(0,0)(7,110){8cm}{6cm}
\psplot[linecolor=blue,plotpoints=150]{.1}{6}{1/x^2}
\end{psgraph}
\end{document}