帮助使用 Tikz 改进图表?

帮助使用 Tikz 改进图表?

我正在尝试掌握 Tikz 的使用方法 - 我已经看到一些使用它完成的很棒的作品。我目前正在为 A-Level 编写一本纯数学书,我需要添加大量图表,其中之一是: 在此处输入图片描述

我喜欢它看起来很干净。我尝试用 Tikz 复制它:

在此处输入图片描述

它看起来并不那么整洁和美观。有人能给我一些关于如何改进我的图表的建议吗?以下是上述图表的 MWE:

\documentclass{article}
\usepackage{tikz}
\begin{document}
        \begin{tikzpicture}[domain=0:4]
        \draw (0,-0.3) node[left]{$O$};
        \draw (-1,0.5)--(8,5);
        \draw[->] (-1,0) -- (8,0) node[right] {$x$};
        \draw[->] (0,-1) -- (0,5) node[above] {$y$};
        \draw (2,2) node{\textbullet};
        \draw (2.6,2) node[below] {$B$\tiny$(x_2,y_2)$};
        \draw (6,4) node{\textbullet};
        \draw (6.8,4) node[below] {$A$\tiny$(x_1,y_1)$};
        \draw[<->, dashed] (6,4)--(6,2) node[right]{$P$};
        \draw[<->, dashed] (2,2)--(6,2);
        \draw[<->, dashed] (1.8,2.5)--(5.8,4.5);
        \draw[dotted](6,2)--(6,0);
        \draw[dotted](2,2)--(2,0);
        \draw(3.7, 3.8) node{$s$};
        \draw(4.3, 1.7) node{$x_1-x_2$};
        \draw(6.8, 3) node{$y_1-x_2$};
        \draw[<->,dashed](1.5,0)--(1.5,2);
        \draw(1.8, 1) node{$y_2$};
        \draw[<->,dashed](1,0)--(1,4);
        \draw(0.8, 2) node{$y_1$};
        \draw[<->,dashed](0,-0.5)--(2,-0.5);
        \draw(1, -0.3) node{$x_2$};
        \draw[<->,dashed](0,-0.8)--(6,-0.8);
        \draw(3, -1) node{$x_1$};
        \end{tikzpicture}
    \end{document}

我感谢任何反馈。

答案1

这里有一些你可以尝试的改变。还有更多的可以做的,但是一次性尝试所有的事情是没有用的。有一件事可以大大简化事情,那就是直接沿着路径放置一个节点,使用诸如、等关键字。midwayabove避免了必须手动计算坐标来放置东西。我还在图片的最开始用设置了所有节点的字体大小。every node/.style还要注意指向 $A$ 和 $B$ 的箭头如何不与点重叠。这是因为当你画一条通向节点的路径时,路径会在节点外面停止。这就是我为这些点命名节点的原因。给节点命名是将名称放在括号内:

node[<options>] (<name>) ...other stuff...

然后当我想绘制到节点的路径时,我只需使用节点的名称,而不是显式坐标。阅读代码你会注意到很多其他事情。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[every node/.style={node font=\scriptsize}]
\draw (0,-0.3) node[left]{$O$};
\draw (-1,0.5)--(8,5);
\draw[->] (-1,0) -- (8,0) node[right] {$x$};
\draw[->] (0,-1) -- (0,5) node[above] {$y$};
\node[circle,fill=black,inner sep=0pt,minimum size=3pt,label=below right:{$B(x_2,y_2)$}] (B) at (2,2) {};
\node[circle,fill=black,inner sep=0pt,minimum size=3pt,label=below right:{$A(x_1,y_1)$}] (A) at (6,4) {};
\draw[<->, dashed] (A)--(6,2) node[right]{$P$} node[midway,right] {$y_2-y_1$};
\draw[<->, dashed] (B)--(6,2) node[midway,below] {$x_1-x_2$};
\draw[<->, dashed] ($(A)+(0,0.5)$) -- ($(B) + (0,0.5)$) node[above,midway] {$s$};
\draw[dotted](6,2)--(6,0);
\draw[dotted](2,2)--(2,0);
\draw[<->,dashed](-0.5,0)-- ++(0,2) node[midway,right] {$y_2$};
\draw[<->,dashed](-0.75,0)-- ++(0,4) node[midway,left]{$y_1$};
\draw[<->,dashed](0,-0.5)--(2,-0.5);
\draw(1, -0.3) node{$x_2$};
\draw[<->,dashed](0,-0.8)--(6,-0.8);
\draw(3, -1) node{$x_1$};
\end{tikzpicture}
\end{document}

最终结果是 在此处输入图片描述

相关内容