在同一图形中绘制两条曲线

在同一图形中绘制两条曲线

我需要有人能帮我把两条曲线画成一个图形。我需要在同一个图形中画两条曲线 Y1 和 Y2。

在此处输入图片描述

顺便说一句,我尝试编写下面的代码:

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}

    \draw[->] (0,0) -- (6,0);
    \draw[->] (0,0) -- (0,1.5);

 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.003) (0.5, 0.005) (2, 0.4) (5, 1)};
 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.2) (0.5, 0.5) (2, 0.1) (5, 1.4)};

\end{tikzpicture}
\end{document}

问题是我得到了一个非常小的图表,特别是一个非常小的 y 轴!!那么我该如何解决这个问题呢?

答案1

您还可以使用该pgfplots包。

第一种方法是直接在代码中使用坐标来生成图形。

\documentclass{article}
\usepackage{tikz,pgfplots}

\begin{document}
   \begin{tikzpicture}
        \begin{axis}[%
            axis x line=bottom,
            axis y line=left]
            \addplot[mark=none,red,thick] coordinates {(0.1, 0.003) (0.5, 0.005) (2, 0.4) (5, 1)};
            \addplot[mark=none,red,thick] coordinates {(0.1, 0.2) (0.5, 0.5) (2, 0.1) (5, 1.4)};
        \end{axis}
    \end{tikzpicture}
\end{document}

第二种方法是使用文件中的表.dat

\documentclass{article}
\usepackage{tikz,pgfplots}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[%
            axis x line=bottom,
            axis y line=left]
            \addplot[mark=none,red,thick] table[x=x,y=y1] {table.dat};
            \addplot[mark=none,red,thick] table[x=x,y=y2] {table.dat};
        \end{axis}
    \end{tikzpicture}
\end{document}

table.dat文件是一个文本文档(您可以使用记事本创建它),数据以列的形式写在其中,如下所示:

x   y1  y2
0.1 0.003   0.2
0.5 0.005   0.5
2   0.4 0.1
5   1   1.4

每个数据都以制表符分隔。

两种方案都会产生这样的结果:

在此处输入图片描述

此外,您还可以为两个轴描述图例和标签。

\documentclass{article}
\usepackage{tikz,pgfplots}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[%
            axis x line=bottom,
            axis y line=left,
            xlabel=$X$,
            ylabel=$Y$,
            legend pos= south east]
            \addplot[mark=none,blue,thick] table[x=x,y=y1] {table.dat};
            \addplot[mark=none,red,thick] table[x=x,y=y2] {table.dat};
            \legend{$Y_1$,$Y_2$};
        \end{axis}
    \end{tikzpicture}
\end{document}

结果:

在此处输入图片描述

答案2

备选方案:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=1.5]
    \draw[->] (0,0) -- (5.5,0) node[right] {$x$}; % x-axis
    \draw[->] (0,0) -- (0,2) node[above] {$y$}; % y-axis
        \foreach \x in {0,0.5,...,5}
            \draw[xshift=\x cm] (0pt,1pt) -- (0pt,-1pt) node[below] {$\x$};
        \foreach \y in {0, 0.5, 1, 1.5}
            \draw[yshift=\y cm] (1pt,0pt) -- (-1pt,0pt) node[left] {$\y$};
 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.003) (0.5, 0.005) (2, 0.4) (5, 1)} node[right, color=black] {$Y_1$};
 \draw[thick, color=blue] plot [smooth,tension=0] coordinates{(0.1, 0.2) (0.5, 0.5) (2, 0.1) (5, 1.4)} node[right, color=black] {$Y_2$};
\end{tikzpicture}
\end{document}

以下改变绘图比例。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

    \draw[->] (0,0) -- (6,0);
    \draw[->] (0,0) -- (0,1.5);

 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.003) (0.5, 0.005) (2, 0.4) (5, 1)};
 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.2) (0.5, 0.5) (2, 0.1) (5, 1.4)};

\end{tikzpicture}
\vskip3ex
\begin{tikzpicture}[x=1.5cm,y=2.0cm]

    \draw[->] (0,0) -- (6,0);
    \draw[->] (0,0) -- (0,1.5);

 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.003) (0.5, 0.005) (2, 0.4) (5, 1)};
 \draw[thick, color=red] plot [smooth,tension=0] coordinates{(0.1, 0.2) (0.5, 0.5) (2, 0.1) (5, 1.4)};

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容