我是 LyX 的新用户,对 LyX 总体上没有太多经验,尤其是 LaTeX 软件包。
我发现可以使用 PGFPlots 绘制二维和三维图形和形状。
我发现一些 PDF 显示了如何绘制函数,但没有显示几何形状。我能够绘制函数,但我尝试绘制矩形,但我不知道该怎么做。
我在 LyX 工作,这是我的 Premables(编辑:最初没有发布它,因为我认为其中大部分内容不相关):
\renewcommand{\labelenumi}{\alph{enumi}.}
\renewcommand{\theenumii}{(\roman{enumii})}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{dtk-logos}
\date{}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\fancyhf{}
这是我的函数图的 LaTeX 代码:
\begin{tikzpicture}
\begin{axis}
\addplot [blue, line width = 1, smooth, domain=0:9] {sqrt(x)};
\end{axis}
\end{tikzpicture}
我想要添加的是矩形,如下所示:
- x_i 是起始 x 值
- x_f 是结束 x 值
- h 是矩形的高度
我正在这个系统中描述它们,但我不知道它是否真的在 PGFPlots 中这样工作。
这些矩形是:
(只是一条线 - 我想我能够为此绘制一个函数)
- x_i = 0
- x_f = 1
- h = 0
- x_i = 1
- x_f = 4
- h = 1
- x_i = 4
- x_f = 9
- h = 2
我希望图表中有一个函数、矩形以及图表的名称。
抱歉,我问的太多了——我不知道该怎么做。如果这个问题违反了规则,请告诉我它违反了哪条规则。
提前致谢。
答案1
绘制矩形非常简单。
只有h = 0
一个线。
MWE 应具有以下特征:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [blue, line width = 1, smooth, domain=0:9] {sqrt(x)};
\draw (0,0) -- (1,0);
\draw (1,0) rectangle (4,1);
\draw (4,0) rectangle (9,2);
\end{axis}
\end{tikzpicture}
\end{document}
我认为ShareLaTeX 教程可能对你有用。
编辑 n. 1
如此简单的形状不太合理,但为了向你展示其特点...你可以创建一个pic
具有两个参数的:底部和高度:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\tikzset{%
pics/myrec/.style n args={2}{code={%
\draw (0,0) rectangle (#1,#2);
}},
}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [blue, line width = 1, smooth, domain=0:9] {sqrt(x)};
% for example you can create a pic with two parameter: base and height
\pic at (0,0) {myrec={1}{0}};
\pic at (1,0) {myrec={3}{1}};
\pic at (4,0) {myrec={5}{2}};
\end{axis}
\end{tikzpicture}
\end{document}
编辑 n. 2
如果您想添加其他选项pic
:
- 如果它们对于所有 s 都相等,
pic
则可以将它们添加到定义中(请参见以下示例中的厚度) - 如果它们每个都不同,
pic
您可以将其放置得像\pic [...]
(参见dashed
和dotted
)或创建另一个参数(参见颜色)。
您还可以为参数设置默认值。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\tikzset{%
pics/myrec/.style n args={3}{code={%
\draw[very thick, #3] (0,0) rectangle (#1,#2);
}},
pics/myrec/.default={1}{0}{pink},
}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [blue, line width = 1, smooth, domain=0:9] {sqrt(x)};
\pic at (0,0) {myrec};
\pic[dashed] at (1,0) {myrec={3}{1}{green}};
\pic[dotted] at (4,0) {myrec={5}{2}{red}};
\end{axis}
\end{tikzpicture}
\end{document}