【问题标题】:Objects, palette and pm3d对象、调色板和 pm3d
【发布时间】:2014-11-14 01:10:44
【问题描述】:

有没有一种简单的方法来绘制一个填充了调色板光谱的 (2d) 对象?

这周我刚开始阅读有关 gnuplot 中的调色板和 pm3d 的内容。我有点困惑。

有没有一种简单的方法来绘制一个对象,例如一个矩形,它在调色板的光谱中填充了颜色,即一个对象的值是由调色板的光谱给出的fillcolor 选项?还是我必须使用 splot?

我在互联网上找不到任何东西,也找不到任何关于这里的问题......

【问题讨论】:

  • 你的意思是像powerpoint中的渐变填充的矩形对象吗?我不认为这是 gnuplot 的一个特性——你必须绘制 2D 数据或具有你想要的渐变的函数(类似于 set pm3d map; splot x)。
  • 是的,就像在PowerPoint中一样!在网上搜索了很久,我认为这也不是gnuplot的功能......你能给出答案吗,只是简单解释一下如何做?感谢阅读!

标签: gnuplot


【解决方案1】:

如果你想要一个 powerpoint-esque 填充渐变,你可以通过一个 multiplot 将它破解到 gnuplot 中,其中一个地块是一个小的矩形 splot:

#!/usr/bin/env gnuplot

set terminal pngcairo enhanced rounded
set output 'gradient.png'

set samples 1000 # for smooth gradient

set multiplot

# plot actual data
plot sin(x)

# set up plot for a rectangle with no decoration
set pm3d map
unset border
unset tics
unset key
unset colorbox
set margin 0

set size 0.2,0.3

# creates a left-to-right gradient
set origin 0.6,0.6
splot x

# creates a top-to-bottom gradient
set origin 0.3,0.3
splot y

# creates a bottom-left to top-right gradient
set origin 0.3,0.6
splot x + y

# and so on
set origin 0.6,0.3
splot x - y

unset multiplot

结果:

如需更多灵感,请参阅: http://gnuplot.sourceforge.net/demo/pm3d.html http://www.gnuplotting.org/tag/colormap/

【讨论】:

  • 很好的答案!它确实帮助了我:D
【解决方案2】:

在玩了一下 gnuplot 之后,如果您有一个包含数据的文件并且不使用 multiplot,我发现了另一种绘制渐变填充矩形的方法。

因此,如果您有一个名为 data 的文件,其数据如下:

x_i y_i

在第 i 列,您可以在 gnuplot 中执行此操作:

set view map
set palette
set pm3d explicit map
splot "data" using 1:2:(1) with lines lw 2 lc rgb "your_color", (x<x_min || x>max) || (y<y_min || y>y_max) ? 1/0 : x with pm3d

重要的是设置 pm3d 时的 explicit 选项:当您发出 with pm3d 命令时,它会使用调色板颜色着色。因此,您可以使用自己喜欢的颜色为数据着色。 using 的第三个参数只是 z 值,在本例中为 1。值 x_min, x_max, y_min, y_max 是矩形顶点的坐标。

例如,我有一个这样的文件

2*pi*i/500 sin(2*pi*/500)

其中pi= 3.1415... 与x_min=1、x_max=3、y_min=-0.7 和y_max=0.1,我得到了这张图:

当然,与@andryas 给出的方法相比,这可能相当费力,因为我们必须用三元运算符编写那个长表达式,但对于不熟悉multiplot 的人来说,这也可以。

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多