如何缩小图中刻度(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}