数据源
本章节介绍通过 \addplot 命令引入的数据源,作为预备知识,请确保已经阅读 AddPlot
函数
该小节仅介绍 PGFplots 内部的计算函数,更多函数请查看:Gnuplot 和 外部程序
以 x 为变量的函数可写为:
\begin{axis}
\addplot {x^2};
\addplot {sin(deg(x))};
\end{axis}函数表达式支持:
- 操作符:
+-*/^mod<> - 数学函数:
absroundfloorminmax - 三角函数:
sincostanatanasinatancotseccosec - 求值函数:
explnsqrtfactorial(取因子) - 进制函数:
hexoctbin - 角度转换:
deg(弧度到角度)rad(角度到弧度) - 求随机数:
rand(-1 - 1)rnd(0 - 1) - 常量:
pie
Options
domain= a:b x 的取值范围,如 domain=-pi:pi
domain y= a:b y 的取值范围
samples at= {a,b,c,d,...} x的取值列表,如:
\pgfplotsset{samples at={5e-5,7e-5,10e-5,12e-5}}\pgfplotsset{samples at={-5,-4.5,...,5}}\pgfplotsset{samples at={-5,-3,-1,-0.5,0,...,5}}
samples= 数字 x 的取值数量,当 samples at 已配置时无效
samples y= 数字 y 的取值数量
variable= 字符 表示横轴变量,默认为 x
variable y= 字符 表示纵轴变量,默认为 y
trig format plots= default deg rad 决定坐标轴的单位是弧度还是角度
Table
以表格作为数据,如表格文件 datafile.dat:
dof L2 Lmax maxlevel
5 8.31160034e-02 1.80007647e-01 2
17 2.54685628e-02 3.75580565e-02 3
49 7.40715288e-03 1.49212716e-02 4
129 2.10192154e-03 4.23330523e-03 5
321 5.87352989e-04 1.30668515e-03 6
769 1.62269942e-04 3.88658098e-04 7
1793 4.44248889e-05 1.12651668e-04 8
4097 1.20714122e-05 3.20339285e-05 9
9217 3.26101452e-06 8.97617707e-06 10引用该文件:
\begin{tikzpicture}
\begin{loglogaxis}[
xlabel=Dof,
ylabel=$L_2$ error,
]
\addplot table [x=dof,y=L2] {datafile.dat};
\end{loglogaxis}
\end{tikzpicture}也可以使用内联的方式,直接写入表格数据:
\addplot table [x=dof,y=Lmax] {
dof L2 Lmax maxlevel
5 8.31160034e-02 1.80007647e-01 2
17 2.54685628e-02 3.75580565e-02 3
49 7.40715288e-03 1.49212716e-02 4
129 2.10192154e-03 4.23330523e-03 5
321 5.87352989e-04 1.30668515e-03 6
769 1.62269942e-04 3.88658098e-04 7
1793 4.44248889e-05 1.12651668e-04 8
4097 1.20714122e-05 3.20339285e-05 9
9217 3.26101452e-06 8.97617707e-06 10
};如果要多次使用某一文件,可以用 \pgfplotstableread 命令:
\pgfplotstableread{datafile.dat}\customtablename % use any custom name in place of `\customtablename'
...
\addplot table [x=dof,y=L2] {\customtablename};
\addplot table [x=dof,y=Lmax] {\customtablename};Options
为避免重复内容,以下所有的 x 都可以替换为 y 和 z 来表示对 y轴 和 z轴 的配置。
header= true false 表格是否有 Header, 设置为 false 表示数据从第一行开始读取
x= 列名 x轴数据来源的列名
x index= 列索引 x轴数据来源的列索引,从0开始
x expr= 表达式 x轴数据由表达式生成,表达式可以是:
\thisrow{列名}以某一列的值作为x轴数据,可以添加计算表达式如:\thisrow{column1}+10\thisrowno{列索引}同上,以列索引为查找对象\coordindex以行数为x轴数据,行数不计入 header 和被跳过的行(被comment chars注释的行)\lineno同上,但会计入 header 和被跳过的行
x error= 列名 x轴误差数据来源的列名
x error <plus|minus> <index|expr>=列索引|表达式这里表示多种写法的组合,如x error plus expr=表达式plus表示误差上限值minus表示下限值,误差线相关知识请查看 误差线
meta <none|index|expr>= 列名|列索引|表达式 点样式列,相关知识请查看 点样式
row sep= newline \ 行的分隔符,默认为 newline 以换行符分隔
col sep= space tab comma colon semicolon braces & ampersand 列的分隔符,默认为 space 以空格分隔
read completely= auto true false 是否始终将整个表读入内存
comment chars= 字符 跳过以该字符开始的行,默认跳过以 # 或 % 开始的行数据
- 如果想跳过某个单元格,请将该单元格填写为
nan
skip first n= 数字 跳过开头的几行,默认为 0
search path= 路径 表的路径,默认为 . 表示当前目录
Graphics
AddPlot 可以通过 graphics 引用外部图片:
\addplot graphics [
xmin=-3,xmax=3,
ymin=-3,ymax=3,
] {external1};还可以通过配置对坐标轴的点与图中的点进行关联,以让它们组合得更加和谐。
由于这块知识不是本文档的重心,在此不展开。
如感兴趣请自行访问 这里。