所以,我有一个由 tikz 生成的图表,我想在轴上添加标签,例如“-2、-1、0、1、2”等等。我搜索了几个小时,几乎只找到与“{axis}”有关的东西,而我使用的不是这个。这似乎应该很简单,但我似乎无法弄清楚。任何帮助都将不胜感激。
提前致谢!
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[step=.5cm,gray!50,very thin] (-2,-2) grid (2,2);
\draw[<->,scale=.5,thick] (-4,0) -- (4,0);
\draw[<->,scale=.5,thick] (0,-4) -- (0,4);
\draw[<->,scale=.5,domain=-2.4495:2.4495,smooth,very thick,variable=\x,blue] plot ({\x},{-\x*\x+2});
\end{tikzpicture}
\end{document}
编辑:schtandard 的图像(见下面的评论)如下。
答案1
我建议你使用 TikZ 库datavisualization
。它有很多工具可以绘制这样的曲线,包括不同的轴样式和生成刻度的机制。请查看 TikZ 手册中的第六章。
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}
\begin{tikzpicture}[scale=.7]
\datavisualization [school book axes, visualize as smooth line,
x axis={min value=-4, max value=4},
y axis={min value=-4, max value=4},
all axes={grid}]
data [format=function] {
var x : interval [-2.5:2.5];
func y = - \value x*\value x + 2;
};
\end{tikzpicture}
\end{document}
如果您喜欢手动完成所有操作,则可以使用\foreach
循环,例如:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture} [scale=.7]
\draw[help lines] (-4 ,-4) grid (4, 4);
\draw[<->,thick] (-4, 0) -- (4, 0);
\draw[<->,thick] (0, -4) -- (0, 4);
\foreach \x in {-3, ..., -1, 1, 2, ..., 3} {
\draw [thick] (\x, 0) -- ++(0, -.2) ++(0, -.15) node [below, outer sep=0pt, inner sep=0pt] {\small\(\x\)};
\draw [thick] (0, \x) -- ++(-.2, 0) ++(-.15, 0) node [left, outer sep=0pt, inner sep=0pt] {\small\(\x\)};
}
\draw[<->,domain=-2.4495:2.4495,smooth,very thick,variable=\x,blue] plot ({\x},{-\x*\x+2});
\end{tikzpicture}
\end{document}
需要注意的事项:
我用整个图片的缩放比例代替了每条路径的缩放比例。我设置了
scale=.7
,因为刻度太挤了scale=.5
(当然你可以使用更少的刻度)。我
gray!50, very thin
用替换了help lines
,这是专为此类用途而设计的样式。如果您希望使用不同的帮助线(例如不同的颜色),最好更改此样式,而不是将其硬编码到网格命令中。...
在这里循环中的使用\foreach
有点过度(1, 2, ..., 3
毕竟没有多大作用)并且只是为了向您展示如何使用它。
答案2
此类图表旨在包装pgfplots
:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines = middle,
grid,
domain=-2.4495:2.4495,
xmin=-3.5, xmax=3.5,
ymin=-4.5, ymax=4.5,
no marks
]
\addplot +[very thick] {-\x*\x+2};
\end{axis}
\end{tikzpicture}
\end{document}