1. 引言

Pgfplots是一种可视化工具,可以简化在文档中包含绘图的过程。基本思想是,您提供输入数据/公式,然后pgfplots完成其余工作。

begin{tikzpicture}
begin{axis}
addplot[color=red]{exp(x)};
end{axis}
end{tikzpicture}%此处结束最远的图
hskip 5pt %此处此处开始3d图 begin{tikzpicture}
begin{axis}
addplot3[ surf,]{exp(-x^2-y^2)*x}; end{axis}
end{tikzpicture}

由于pgfplot基于tikz,因此该图必须位于tikzpicture环境中。然后,环境声明

begin{axis},
end{axis}

将为绘图设置正确的缩放比例,有关其他轴环境,请参见参考指南。 要添加实际图,请使用命令

addplot[color=red]{log(x)};

。在方括号内可以传递一些选项,在这种情况下,我们将图的颜色设置为红色;方括号是必需的,如果没有传递任何选项,则方括号之间将留有空白。在花括号内,您可以绘制函数。重要的是要记住,该命令必须以分号 结尾;。 要在第一个图旁边放置第二个图,请声明一个新的tikzpicture环境。不要插入新行,而是要留一个小的空白,在这种情况下,hskip 10pt将插入一个10pt宽的空白。 除以外,其余语法相同

addplot3 [surf,]{exp(-x^2-y^2)*x};

。这将添加一个3D plot,方括号内的选项surf声明这是一个曲面图。要绘制的函数必须放在大括号内。同样,不要忘了用分号代替 ;在命令末尾。 注:我们推荐一个很好的做法,缩进代码-看到在上面的例子中第二个情节-并添加一个逗号,在传递给每个选项的结束

addplot

。这样,代码更具可读性,并且在需要时更容易添加其他选项。

2. 文件序言

要将pgfplots包含在文档中非常容易,只需在您的序言中添加下一行即可:

usepackage{pgfplots}

可以在序言中对此包装进行一些其他调整。要更改每个图的大小并确保向后兼容(推荐),请添加下一行:

pgfplotsset{width=10cm,compat=1.9}

这会将每个pgfplot图形的大小更改为10厘米,这是巨大的;您可以使用不同的单位(磅,毫米,英寸)。该compat的参数是代码工作,对包版本1.9或更高版本。 由于LaTeX最初并不是考虑绘图功能而设计的,因此当文档中有多个pgfplot图形或它们非常复杂时,渲染它们将花费大量时间。为了缩短编译时间,您可以配置软件包以将图形导出为单独的PDF文件,然后将其导入文档中,将以下所示的代码添加到序言中:

usepgfplotslibrary{external} tikzexternalize

3. 2D图

Pgfplots 2D绘图功能非常丰富,您可以个性化绘图以准确显示所需的内容。然而,默认选项通常给出了很好的效果,因此,所有你需要做的是输入数据和大LaTeX将完成剩下的: 1. 绘制数学表达式

绘制数学表达式非常简单:

begin{tikzpicture} begin{axis}[ axis lines = left, xlabel = $x$, ylabel = {$f(x)$},]%Below the red parabola is definedaddplot [ domain=-10:10, samples=100, color=red, ]{x^2 - 2x - 1};addlegendentry{$x^2 - 2x - 1$}%Here the blue parabloa is definedaddplot [ domain=-10:10, samples=100, color=blue,] {x^2 + 2x + 1};addlegendentry{$x^2 + 2x + 1$} end{axis} end{tikzpicture}

让我们逐行分析新命令:

axis lines = left.

这将仅在图的左侧和底部设置轴,而不是默认框。参考指南中的其他自定义选项。

xlabel = $x$和ylabel = {$f(x)$}

不言自明的参数名称,可让您在水平和垂直轴上放置标签。请注意大括号之间的ylabel值,该括号告诉pgfplots如何对文本进行分组。该xlabel可以有括号也。这对于可能会使pgfplot混淆的复杂标签很有用。

addplot

这将在轴上添加一个图,在介绍中介绍了一般用法。此示例中有两个新参数。

domain=-10:10

这将确定的值范围。

samples=100

确定domain定义的间隔中的点数。样本值越大,您获得的图形越锐利,但是渲染所需的时间更长。

addlegendentry{$x^2 - 2x - 1$}

这将添加图例以标识功能。 要将另一个图形添加到绘图中,只需编写一个新addplot条目。

  1. 从数据绘图

科学研究通常会产生必须分析的数据。下一个示例显示如何使用pgfplots绘制数据:

begin{tikzpicture}
begin{axis}
[title={Temperature dependence of CuSO$_4cdot$5H$_2$O solubility},
xlabel={Temperature [textcelsius]},
ylabel={Solubility [g per 100 g water]},
xmin=0, xmax=100,
ymin=0, ymax=120,
xtick={0,20,40,60,80,100},
ytick={0,20,40,60,80,100,120},
legend pos=north west,
ymajorgrids=true,
grid style=dashed,]
addplot[
color=blue,
mark=square, ]
coordinates {(0,23.1)(10,27.5)(20,32)(30,37.8)(40,44.6)(60,61.8)(80,83.8)(100,114)};
legend{CuSO$_4cdot$5H$_2$O}
end{axis}end{tikzpicture}

这里有一些新的命令和参数:

title={Temperature dependence of CuSO$_4cdot$5H$_2$O solubility}

如您所料,为图形分配标题。标题将显示在绘图上方。

xmin=0, xmax=100, ymin=0, ymax=120

x和y轴的最小和最大范围。

xtick={0,20,40,60,80,100}, ytick={0,20,40,60,80,100,120}

标记放置的点。如果为空,则自动设置刻度线。

legend pos=north west

图例框的位置。查看参考指南以了解更多选项。

ymajorgrids=true

这将启用/禁用y轴上刻度位置的网格线。使用xmajorgrids以使在x轴网格线。

grid style=dashed

不言自明。显示虚线网格线。

mark=square

这在中的每个点绘制一个标记平方cordinates阵列。每个标记将通过一条直线与下一个标记连接。

coordinates {(0,23.1)(10,27.5)(20,32)...}

要绘制的点的坐标。这是您要以图形方式分析的数据。 如果数据在文件中,通常是这种情况;而不是命令addplot,coordinates您应该使用

addplot table {file_with_the_data.dat}

其余选项在此环境中有效。

  1. 散点图 散点图通过使用某种标记来表示信息,这些标记很常见,例如,在计算统计回归时。让我们用一些数据开始,下面的示例是显示我们将图中的数据文件的结构:

GPA ma ve co un 3.45 643 589 3.76 3.52 2.78 558 512 2.87 2.91 2.52 583 503 2.54 2.4 3.67 685 602 3.83 3.47 3.24 592 538 3.29 3.47 2.1 562 486 2.64 2.37

下一个示例是此表中前两列的散点图:

begin{tikzpicture}begin{axis}[enlargelimits=false,]addplot+[only marks,scatter,mark=halfcircle*,mark size=2.9pt]
table[meta=ma]{scattered_example.dat};
end{axis}
end{tikzpicture}

除了scatter之外,传递给axis和addplot环境的参数也可以在数据图中使用。下面的代码说明:

enlarge limits=false

这将收缩轴,因此具有最大值和最小值的点位于图的边缘。

only marks

真正明确,将在每个点上打上标记。

scatter

使用散点图时,将根据值对点进行着色,其颜色由以下meta说明的参数给出。

mark=halfcircle*

在每个点上使用的标记类型,请查阅参考指南以获取可能值的列表。

mark size=2.9pt

每个标记的大小,可以使用不同的单位。

table[meta=ma]{scattered_example.dat};

在这里,table命令告诉LaTeX要绘制的数据在文件中。所述

meta=ma

参数被传递到选择用于确定每个点的颜色的列。大括号内是数据文件的名称。 5. 条形图 条形图(也称为条形图和条形图)用于显示收集的数据,主要是有关某种种群的统计数据。pgfplots中的条形图是高度可定制的,但是在这里我们将展示一个“可行”的示例:

 begin { tikzpicture } begin { axis } [ x刻度标签样式= { / pgf /数字格式/ 1000 sep = },ylabel = Year,largeenlimits = 0.05,图例样式= { at = {(0.5,-0.1)},anchor = north,legleg column = -1 },ybar interval = 0.7,]addplot 坐标{(2012,408184)(2011,408348)(2010,414870)(2009,412156)};addplot 坐标{(2012,388950)(2011,393007)(2010,398449)(2009,395972)};legend {男性,女性} end {轴}end { tikzpicture }

该图从已经说明过的tikzpicture和轴环境的声明开始,但是轴声明具有许多新参数:

x tick label style={/pgf/number format/1000 sep=}

这段代码定义了情节的完整样式。使用这种样式,您可以addplot在此轴环境中包括多个命令,它们将适合并且看起来很好,而无需进行进一步的调整(ybar下面描述的参数对于此功能是必不可少的)。

enlargelimits=0.05,

扩大条形图中的限制是必要的,因为这类图通常需要在条形上方有一些额外的空间才能看起来更好和/或添加标签。然后数字0.05相对于图的总高度。

legend style={at={(0.5,-0.2)}, anchor=north,legend columns=-1}

同样,这在大多数情况下都可以正常工作。如果有的话,请更改-0.2的值以使图例离x轴更近/更远。

ybar interval=0.7,

每个条的厚度。1表示条形将彼此相邻,没有间隙; 0表示没有条形,只有垂直线。 将coordinates在这种情节确定的酒吧和其高度的基点。 y轴上的标签最多显示4位数字。如果您使用的数字大于9999,pgfplot将使用与示例相同的符号。

4. 3D图

pgfplots具有您可能在绘图软件中期望的3d绘图功能。

  1. 绘制数学表达式 还有在这个简单的例子介绍,让我们对一些稍微复杂的工作:
begin{tikzpicture}
begin{axis}[title=Exmple using the mesh parameter,hide axis,colormap/cool,]addplot3[mesh,samples=50,domain=-8:8,]{sin(deg(sqrt(x^2+y^2)))/sqrt(x^2+y^2)};
addlegendentry{$frac{sin(r)}{r}$}
end{axis}
end{tikzpicture}

此处的大多数命令已经进行了解释,但是有3项新内容:

hide axis

轴环境中的此选项是自描述的,不会显示轴。

colormap/cool

是在绘图中使用的配色方案。查看参考指南以了解更多配色方案。

mesh

该选项也是自描述的,在入门示例中还检查了surf参数。 注意:当使用三角函数时,pgfplots使用度作为默认单位,如果角度为弧度(如本例所示),则必须使用

de deg function

转换为度。

  1. 等高线图 在pgfplots中可以绘制等高线图,但是必须通过外部程序预先计算数据。让我们来看看:
 begin { tikzpicture }begin { axis }
[ title = {等高线图,从顶部观看},view = { 0 } { 90 }
] addplot 3 [等高线gnuplot = {级别= { 0.8,0.4,0.2,-0.2 }}
] { sin(deg(sqrt(x ^ 2 + y ^ 2)))/ sqrt(x ^ 2 + y ^ 2)};end {轴} end { tikzpicture}

这是上一节中使用的相同方程式的一些轮廓线图。该值标题参数是大括号内,因为它包含一个逗号,所以我们使用分组括号,以避免传递给其它参数混淆begin{axis}声明。有两个新命令:

view={0}{90}

这将更改绘图的视图。参数将传递到轴环境,这意味着该参数可用于任何其他类型的3d图中。第一个值是围绕z轴的旋转(以度为单位);第二个值是绕X轴旋转视图。在此示例中,当我们将围绕z轴的0°旋转和围绕x轴的90°旋转组合在一起时,我们最终从顶部看到了绘图。

contour gnuplot={levels={0.8, 0.4, 0.2, -0.2}}

这行代码有两件事:第一,告诉LaTeX使用外部软件gnuplot计算轮廓线。这在ShareLaTeX中可以正常工作,但如果要在本地LaTeX安装中使用此命令,则必须先安装gnuplot(matlab也可以使用,在这种情况下,请在命令中写入matlab而不是gnuplot)。其次,子参数levels是要在其中计算轮廓线的高程值的列表。

  1. 根据数据绘制表面 要将一组数据绘制到3d曲面中,我们需要的是每个点的坐标。这些坐标可以是无序集合,在这种情况下,可以是矩阵:
 begin { tikzpicture } begin {轴} addplot 3 [ surf,]
坐标{
(0,0,0)(0,1,0)(0,2,0)
(1,0,0)(1, 1,0.6)(1,2,0.7)
(2,0,0)(2,1,0.7)(2,2,1.8)};end {轴} end { tikzpicture }

传递给coordinates参数的点被视为包含在3 x 3矩阵中,该矩阵为白色行,每个矩阵行的分隔符隔开。 本文中3d绘图的所有选项都适用于数据表面。

  1. 参数图 参数图的语法略有不同。让我们来看看:
 begin { tikzpicture } begin { axis } [ view = { 60 } { 30 },] addplot 3 [ domain = 0:5 * pi,samples = 60,samples y = 0,
]
({ sin(deg(x ))},{ cos(deg(x))},{ x });end {轴} end { tikzpicture }

在这个例子中,只有两件事:第一,samples y=0防止pgfplots加入到螺旋的极端。第二,绘制函数传递到addplot3环境的方式。每个参数函数在大括号内分组,并且三个参数用括号定界。


https://www.overleaf.com/learn/latex/Pgfplots_package#The_document_preamble​www.overleaf.com

Pgfplots package

Pgfplots_package原文链接​www.overleaf.com

latex怎么让table下面空白变小_LaTeX:pgf usepackage(宏包)的中译相关推荐

  1. LATEX教程第三讲——那些不得不说的宏包(中)

    LATEX教程第三讲-- 那些不得不说的宏包(中) 3.1 表格与列表 array longtable supertabular tabularx multirow hhline slashbox b ...

  2. 视频文件太大如何压缩变小?

    视频文件太大如何压缩变小?任何文件如果太大就会给使用带来麻烦,尤其是视频文件,一两分钟的视频可能就有几十mb,不仅占用大量的存储空间,发送给别人的时候也更加的费时,这时候就需要将较大的视频压缩变小,提 ...

  3. 实训|第十天从底层解释一下U盘内存为什么变小的原因附数据恢复的基本原理...

    [root@localhost~]#序言我们平时不论是买一个U盘硬盘,或者自己在电脑上创建一个分区,大小总是比我们创建的要小一点,有些人会说,这个正常啊,是因为厂家规定的1M=1000k,真正的是1M ...

  4. word文件太大如何变小?

    word文件太大如何变小?毫无疑问,word文件是我们最早接触,也是我们使用最多的电脑文件格式之一,不管是学习还是工作中,我们习惯用word来编写文件.在编写word文件的时候我们喜欢在里面插入一些图 ...

  5. 照片太大,照片如何压缩变小?

    照片太大,照片如何压缩变小?随着自媒体时代的来临,越来越多的人用照片记录生活,把拍好的照片上传到各个社交媒体平台,供自己和他人的娱乐欣赏.在上传的时候经常会出现因照片太大导致无法上传的情况发生,这个时 ...

  6. TeX/LaTeX 常用宏包简介

    geometry 利用 geometry 可以很方便的设置页面的大小.由于可以自动居中排放页面,自动计算并平衡页面各部分如页眉.页脚.左右边空等的大小,因此只需给出很少的信息就能得到满意的页面.   ...

  7. Latex中宏包总结

    文章目录 基本: 字体包 样式定制 特定领域 特定需求 浮动体专题 表格专题 PDF 专题 辅助工具专题 命令定义.宏包编写专题 个人推荐 兴趣类 主要参考: https://zhuanlan.zhi ...

  8. LaTeX 常用宏包(转载)

    latex常用宏包 (2014-08-01 19:45:30) 转载▼     转载于http://blog.sina.com.cn/s/blog_628dd2bc0102uyih.html 页面与标 ...

  9. TeX/LaTeX 常用宏包

    页面与标题式样 geometry 利用 geometry 可以很方便的设置页面的大小.由于可以自动居中排放页面,自动计算并平衡页面各部分如页眉.页脚.左右边空等的大小,因此只需给出很少的信息就能得到满 ...

  10. Latex排版论文MiKTeX与Texmaker 配置使用及宏包的下载

    MiKTeX与Texmaker 配置使用及宏包的下载 自己也是第一次使用latex排版论文(导师需要),经过几天的折腾算是把一篇12页内容的英文论文排好了. 首先,texmaker是编辑器,它并不能对 ...

最新文章

  1. Java ArrayList去重
  2. C#字节数组与值类型变量的互相转换,以及注意事项
  3. 【WPF】ListBox嵌套与事件冒泡
  4. [Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
  5. linux 系统tty、pty和pts 的概念及区别(转)
  6. iOS应用不同状态下收到推送的处理
  7. spring3,上传文件ApplicationHttpRequest cannot be ca...
  8. HTTP普及帖2:简单的HTTP(上)
  9. 博主力推!!NRF52832 BLE 抓包sniffer来了!附带安装使用说明
  10. JZOJ 6841. 【2020.11.5提高组模拟】淘淘蓝蓝之树林(凸包+最短路)
  11. USB PD快速充电通信原理
  12. 记录---第一次写博客
  13. 教师资格证上传照片时显示内部服务器错误怎么解决
  14. 离职当天,删库跑路,京东到家程序员被判刑
  15. 绝地求生——PUBG吃鸡游戏模糊,画质很差
  16. freeswitch + dbl 提示403
  17. cad旋转命令_CAD制图初学入门教程:CAD软件中旋转命令的使用技巧
  18. jupyter的使用
  19. 【Django毕业设计源码】Python考试题库练习系统
  20. centos7 通过端口转发实现代理中转

热门文章

  1. zabbix创建自定义监控项
  2. python 镜像_python测开平台使用dockerfile构建镜像
  3. linux dhcp 清除缓存,[dhcpd]清除dhcp缓存
  4. 使用函数求素数和_用母函数法处理一个数论问题的研究笔记
  5. mysql一张表能存多少条数据不影响性能_MySQL|优化案例两则
  6. mysql start tran_mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法
  7. Introduction to Computer Networking学习笔记(二十七):BitTorrent
  8. [HZOI 2016]tree—增强版
  9. vue.js笔记1.0
  10. Wsus 清理的计划任务