答案1
你是一位新贡献者,所以我建议你使用比 更专业的工具tkz-fct
。我的包只适用于小型图表。我想pgfplots
这就是你需要的。我想你会从这个包中得到答案。
要完成 ,tkz-fct
您需要安装gnuplot
。这是进行计算的。否则,您只需使用 即可完成所需的操作TikZ
。
更新:与xstep
1 用途不同x
,而不是x
\documentclass{article}
\usepackage{tkz-fct}
\begin{document}
\begin{tikzpicture}[scale=2]
\tkzInit[xmin=-4,xmax=4,ymin=-4,ymax=4,xstep=2,ystep=2]
\tkzClip[space=1]
\tkzGrid
\tkzAxeXY
\begin{scope}
\tkzFct[color=blue, domain=0:4]{1./\x}
\tkzFct[draw=none, domain=0:4]{0}
\tkzDrawAreafg[color=blue!10,domain = 0.01:4]
\end{scope}
\begin{scope}
\tkzFct[draw=none, domain=-4:0]{0}
\tkzFct[color=red ,domain=-4:0]{1./\x}
\tkzDrawAreafg[color=red!20,domain = -4:-0.01]
\end{scope}
\end{tikzpicture}
\end{document}
补充 :
你可以混合使用 tkz-fct 和 TikZ
\documentclass{article}
\usepackage{tkz-fct,mathtools}
\begin{document}
\begin{tikzpicture}[scale=3]
\tkzInit[xmin=0,xmax=4,ymin=-1.5,ymax=1.5]
\tkzAxeX\tkzAxeY
\tkzDefPoint(1,0){x}
\tkzDrawPoint[color=blue,size=0.6pt](x)
\shade[top color=gray!80,bottom color=gray!20] (1,0)%
plot[id=ln,domain=1:2.718] function{log(x)} |-(1,0);
\draw[color=blue] plot[id=ln,domain=0.2:4,samples=200]function{log(x)};
\tkzText[draw,color= black,fill=brown!50](2,-1)%
{$\mathcal{A} = \int_1^{\text{e}}\ln(x)\text{d}x =\big[x\ln(x)\big]_{1}^{\text{e}} = \text{e}$}
\tkzText[draw,color= black,fill=brown!50](2,0.3){$\mathcal{A}$}
\end{tikzpicture}
\end{document}
答案2
这是一个简单的 Asymptote 方法,你可以编译在线的。简单的东西适合初学者。这里有一个链接见背面。如果你想在桌面上编译,请确保拥有渐近线已安装。
// copy http://asymptote.ualberta.ca/ and click Run
usepackage("amsmath"); // for \dfrac
import graph;
import math; // for grid
unitsize(1cm);
size(6cm);
real f(real x){return 1/x;}
int a=4;
add(shift(-a,-a)*scale(2)*grid(a,a,gray));
real s=.1;
path p=graph(f,s,a);
path q=graph(f,-a,-s);
pen penp=magenta, penq=deepcyan;
fill((0,0)--(0,a+1)--p--(a+1,0)--cycle,penp+white+opacity(.5));
fill((0,0)--(-a-1,0)--q--(0,-a-1)--cycle,penq+opacity(.5));
draw(p,penp+1pt);
draw(q,penq+1pt);
clip(box((a,a),(-a,-a)));
draw(Label("$x$",EndPoint,align=SW),(-a-1,0)--(a+1,0),Arrow(TeXHead));
draw(Label("$y$",EndPoint,align=SW),(0,-a-.5)--(0,a+1),Arrow(TeXHead));
label(Label("p.v. $\displaystyle\int_{-a}^a\dfrac{1}{x}\,dx=0$",FillDraw(yellow,black)),(-2,2));
label(Label("$a$",Fill(white)),(a,0),2S);
label(Label("$-a$",Fill(white)),(-a,0),2N);