为什么在 x=10.5 和 y=4.5 处画线,而在 x = -4.5 和 y = -3.5 处却没有画线?
如何将文本“0”与 x 轴标签的基线对齐?
\documentclass[tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\usetikzlibrary[arrows.meta,bending]
\usetikzlibrary{shapes.geometric,positioning,shapes}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
restrict x to domain=-5:11, xmax=11, xmin=-5,
restrict y to domain=-4:5, ymax=5, ymin=-4,
x=1cm,
y=1cm,
axis x line = middle,
axis y line = middle,
axis line style =ultra thick,
major tick style=black,
grid=both,
major grid style=lightgray,
minor grid style=lightgray,
minor tick num=1,
xtick={-4,...,10},
ytick={-3,...,4},
extra x ticks={-5,11},
extra y ticks={-4,5},
extra y tick label={\null},
extra x tick label={\null},
extra tick style={tick style={draw=none}},
samples=1000,
>=stealth,
]
\addplot[thick,smooth,domain=-4:10] {3.5*(x-2)*(x+1)/(x^2-3*x+4)};
\node[fill=black,circle,scale=0.4] at (-4,1.96975){};
\node[fill=black,circle,scale=0.4] at (10,4.16216){};
\node[below left] at (axis cs:0,0) {$0$};
\node[below] at (axis cs:10.8,-0.1) {$x$};
\node[left] at (axis cs:-0.1,4.8) {$y$};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
版本 1
你问
为什么没有在 x = -4.5 和 y = -3.5 处画线?
在你的代码中你有
xtick={-4,...,10},
ytick={-3,...,4},
extra x ticks={-5,11},
extra y ticks={-4,5},
你的问题很严肃吗?因为你在代码中请求额外的滴答作响
x = -5 和 11和y = -4 和 5
和普通的滴答作响x = -4 至 10,步长为 1和y = -3 至 4,步长为 1。
并且由于\node[below left] at (axis cs:0,0) {$0$};
原点的零点/0()发生了偏移,请查看ticklabel cs
手册。
版本 2
这是您的滴答问题的解决方案 - 我不知道如何轻松地添加零,而且我认为在您的情况下这不是必需的。
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmax=11,
xmin=-5,
ymax=5,
ymin=-4,
axis x line = middle,
axis y line = middle,
grid=both,
major grid style=lightgray,
minor grid style=red,
% Visualize extra tick grid
extra tick style={
major grid style=blue,
},
minor tick num=1,
xtick={-2,0,...,10},
ytick={-3,...,4},
extra x ticks={-4.5},
extra y ticks={-3.5},
]
\end{axis}
\end{tikzpicture}
\end{document}
我真的不明白你在那里做了什么 :)。也许你在代码中同时执行了太多步骤。
我改变了网格的颜色来表示主要电网,小格子和额外的网格。