无法使用 pgfplots 绘制细小刻度

无法使用 pgfplots 绘制细小刻度

为什么在 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 和 11y = -4 和 5

普通的滴答作响x = -4 至 10,步长为 1y = -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}

在此处输入图片描述

我真的不明白你在那里做了什么 :)。也许你在代码中同时执行了太多步骤。

我改变了网格的颜色来表示主要电网小格子额外的网格

相关内容