使用 gnuplot(二)

3、使用 gnuplot(二)

3.5 如何改变符号、线厚度和形状?

gnuplot提供多种命令来设置线条和点属性,包括颜色、厚度、点形状等。命令测试将显示当前所选终端类型的测试页,显示可用的颜色、大小、形状等预先定义的组合。您可以使用命令集“线型”来更改此设置或定义其他组合。

3.6 我可以动画我的图形吗?

只有一个gnuplot终端类型(GIF)直接输出的终端上动画:
设置终端gif动画 {delay } {loop } {optimize}

3.7 如何绘制隐式定义图?

隐式图或曲线不能直接绘制在nuplot中。不过,还有一个解决办法。

gnuplot> # An example. Place your definition in the following line:
gnuplot> f(x,y) = y - x**2 / tan(y)
gnuplot> set contour base
gnuplot>set cntrparam levels discrete 0.0
gnuplot> unset surface
gnuplot> set table ’curve.dat’
gnuplot> splot f(x,y)
gnuplot> unset table
gnuplot>plot ’curve.dat’ w l

技巧是绘制表面z=f(x,y)的单个轮廓线z=0,并将生成的轮廓曲线存储到AgnuplotData文件中。

3.8如何确定两条曲线之间的区域

使用伪曲线“+”可以很容易地获得两条给定曲线之间的填充面积图,且填充曲线闭合。下面的示例演示了两条曲线f(x)和g(x)的情况:

f(x)=cos(x)
g(x)=sin(x)
xmax=pi/4
set xrange [0:xmax]
plot ’+’ using 1:(f($1)):(g($1)) with filledcurves closed

请注意,上面的代码填充了两条曲线之间的区域,而不是满足不等式g(x)

有关帮助查找、帮助特殊文件名和帮助三元,请参阅文档,并在演示目录中查看fillbetween.dem。

3.9 数据文件中的PM3D Splot不绘制任何内容

您可以设置pm3d;splot“a.dat”,但不显示绘图,而是显示颜色框。数据文件中的两次后续扫描(等值线)之间可能没有空行?添加空行!如果您好奇这意味着什么,那么不要犹豫,在gnuplot demo目录中查找demo/glass.dat或demo/triangle.dat等文件。您可以找到以下awk脚本(称之为addblanks.awk),当第一列中的数字更改时,它会向数据文件添加空行:

/^[:blank:*#/ {next} # ignore comments (lines starting with #) NF < 3 {next} # ignore lines which don’t have at least 3 columns $1 != prev {printf “\n”; prev=$1} # print blank line {print} # print the line

然后,要么通过命令awk-f addblanks.awksplot“

3.10 绘制三维数据的二维投影

使用“设置视图”地图,还可以使用带有图像的打印样式和用于打印二维彩色图像的rgbimage。

3.11 如何将点/点散点图叠加到APM3D图/面上

使用PM3D样式的显式(另请参见隐式)开关:

gnuplot> set pm3d explicit
gnuplot> splot x with pm3d, x*y with points

3.12 如何生成标记轮廓

在Gnuplot版本4中,在轮廓图中标记单个轮廓需要特殊的技巧和额外的处理步骤。请参阅http://gnuplot.sourceforge.net/scripts/index.html tricks。在版本5中,过程要简单得多。绘制两次轮廓图,一次“带线”,一次“带标签”。要使标签突出,可能有助于使用

set style textbox opaque noborder
set contours
splot ’DATA’ with line, ’DATA’ with labels boxed

3.13 如何在PM3D地图/表面上覆盖等高线图

[不再需要吗?]这要求您使用表终端将轮廓写入临时文件,然后使用此文件在文件中绘制出起始轮廓。下面的示例演示了地图的比例;对于“表面”,请删除“设置PM3D地图”并将“设置TICSLEVEL 0”。

#Write contours of function xx-yy to a (temporary) file set contour base; set cntrparam level 20 unset surface set table ’contour.dat’ splot xx-yy unset table
#Change single blank lines to double blank lines !awk “NF<2{printf”\n"}{print}" contour1.dat
#Draw the plot reset set palette gray set palette gamma 2.5 set pm3d map set pm3d explicit splot xx+yy with pm3d, ’contour1.dat’ with line lt -1 !rm contour.dat contour1.dat
最后一个命令删除两个临时文件。

3.14 带PM3D的彩色面

可以绘制三维对象的颜色面,其组织形式如下:

#triangle 1
x0 y0 z0
x1 y1 z1
x2 y2 z2
x2 y2 z2
#triangle 2
x y z …
注意定位单、双空行。是可选颜色。
然后用(splot中的任意一个)绘制:

set pm3d
set style data pm3d
splot ’facets.dat’
splot ’facets_with_color.dat’ using 1:2:3:4

请注意,通过设置样式数据pm3d或splot可以避免表面线条…使用pm3d。在上面的示例中,pm3d将三角形显示为独立曲面。如数据文件所示,它们被一个接一个地绘制出来。在二维投影中重叠的零件被透支。gnuplot不是3D建模程序。它的隐藏例程适用于点和线,但不适用于面。如果不将数据作为面集合来处理,就没有任何表面可以隐藏在后面。“hidden3d”算法通过以下两种方式使用输入数据:首先,建立一组三角形(由四边形网格构成),形成曲面,其次是边缘集合。然后,它穿过所有这些边,检查它们的哪些部分没有隐藏在任何面后面,并绘制这些边。因此,gnuplot不会将您的曲面或三维对象绘制为虚拟现实。对于设置PM3D地图,它可以工作,但是对于真正的3D,您可能更乐意将您的方面的转换器写入VRML文件。

3.15 用于在彩色和黑白打印机上打印我的彩色地图的调色板?

尝试设置调色板cubehelix。

你可能感兴趣的:(使用 gnuplot(二))