我需要有人能帮我把两条曲线画成一个图形。我需要在同一个图形中画两条曲线 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}