如何缩小 Tikz 中图形轴上的刻度尺寸

如何缩小 Tikz 中图形轴上的刻度尺寸

如何缩小图中刻度(j-1、j 和 j+1)的尺寸Tikz

此外,由于我没有太多经验Tikz,如果有更标准/更有效的方法来编写整个图表,我很乐意学习!

我通过修改我在上找到的一个例子获得了这个图表Texample.net

图形

\documentclass[a4paper, 12pt]{book}
\usepackage{pgfplots, tikz}
\begin{document}
\begin{tikzpicture}[scale = 0.7]
% Draw axes
\draw [<->,thick] (0,5) node (yaxis) [above] {$y$}
|- (5,0) node (xaxis) [right] {$x$};

\coordinate (c) at (2,2);
\fill[red] (c) circle (3pt);
\draw[dashed] (yaxis |- c) node[left] {$i$}
-| (xaxis -| c) node[below] {$j-1$};

\coordinate (d) at (3,2);
\fill[red] (d) circle (3pt);
\draw[dashed] (yaxis |- d) node[left] {$i$}
-| (xaxis -| d) node[below] {$j$};

\coordinate (d) at (3,3);
\fill[red] (d) circle (3pt);
\draw[dashed] (yaxis |- d) node[left] {$i+1$}
-| (xaxis -| d) node[below] {$j$};

\coordinate (d) at (4,2);
\fill[red] (d) circle (3pt);
\draw[dashed] (yaxis |- d) node[left] {$i$}
-| (xaxis -| d) node[below] {$j+1$};

\draw [thin, gray] (0,0) grid (5,5);
\end{tikzpicture}
\end{document}

答案1

我在网格中设置了一些不透明度。在我看来,他们还应该将红点放在前景中,以隐藏侵入点的虚线。但我不知道你是否想要这个。

在此处输入图片描述

\documentclass[a4paper, 12pt]{book}
\usepackage{pgfplots, tikz}
\begin{document}
\begin{tikzpicture}[scale = 0.7]
% Draw axes
\draw [<->,thick] (0,5) node (yaxis) [above] {$y$}
|- (5,0) node (xaxis) [right] {$x$};

\coordinate (c) at (2,2);
\fill[red] (c) circle (3pt);
\draw[dashed] (yaxis |- c) node[left] {}
-| (xaxis -| c) node[below] {$\scriptstyle{j-1}$};

\coordinate (d) at (3,2);
\fill[red] (d) circle (3pt);
\draw[dashed] (yaxis |- d) node[left] {$\scriptstyle{i}$}
-| (xaxis -| d) node[below] {};

\coordinate (d) at (3,3);
\fill[red] (d) circle (3pt);
\draw[dashed] (yaxis |- d) node[left] {$\scriptstyle{i+1}$}
-| (xaxis -| d) node[below] {$\scriptstyle{j}$};

\coordinate (d) at (4,2);
\fill[red] (d) circle (3pt);
\draw[dashed] (yaxis |- d) node[left] {}
-| (xaxis -| d) node[below] {$\scriptstyle{j+1}$};

\draw [thin, gray] (0,0) grid (5,5);
\end{tikzpicture}
\end{document}

答案2

缩放包含文本的元素不是一个好主意,这将导致字母形状的选择不理想,请参阅为什么不缩放包含文本的元素了解更多信息。不要缩放刻度标签,最好选择合适的字体大小,例如\scriptsize。如果您希望特定元素(如x和)y保持正常大小,您可以添加\normalsize它们的节点。

其他一些评论:

  • 您将标签打印i三次j,具体取决于您的 pdf 查看器的渲染精度,这可能会导致字体看起来很尴尬,最好只打印一次。

  • 如果您为坐标选择唯一的名称,而不是重复使用 3 个名称,那就更好了d。这有一个很大的优势,您可以轻松控制绘制事物的顺序。例如,您可以先在背景中绘制网格,然后绘制轴、虚线和最后的红点。

  • 为了避免出现多条虚线位置不同的虚线重叠的问题,您可以限制绘图范围(如下例所示)或反转绘图方向以确保它们都有相同的起点。


\documentclass[a4paper, 12pt]{book}
\usepackage{pgfplots, tikz}
\begin{document}

\begingroup
    \scriptsize
    \begin{tikzpicture}[scale=0.7]

        % grid
        \draw [thin, gray!30] (0,0) grid (5,5);

        % Draw axes
        \draw [<->,thick] (0,5) node (yaxis) [above] {\normalsize $y$} |- (5,0) node (xaxis) [right] {\normalsize $x$};

        % Coordinates   
        \coordinate (a) at (2,2);
        \coordinate (b) at (3,2);
        \coordinate (c) at (3,3);
        \coordinate (d) at (4,2);

        % Dashed lines
        \draw[dashed] (yaxis |- a) node[left] {$i$} -| (xaxis -| a) node[below] {$j-1$};
        \draw[dashed] (a |- b) -| (xaxis -| b) node[below] {$j$};
        \draw[dashed] (yaxis |- c) node[left] {$i+1$} -| (b -| c);
        \draw[dashed] (b |- d) -| (xaxis -| d) node[below] {$j+1$};

        % red dots
        \fill[red] (a) circle (3pt);
        \fill[red] (b) circle (3pt);
        \fill[red] (c) circle (3pt);
        \fill[red] (d) circle (3pt);

    \end{tikzpicture}
\endgroup
\end{document}

在此处输入图片描述

相关内容