微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gnuplot的“步骤”样式不接受可变颜色

如何解决gnuplot的“步骤”样式不接受可变颜色

我正在Debian 10上使用Gnuplot版本5.2补丁程序级别6。以下程序

$d << EOD
1     0.5   0.1
2     0.75  0.2
3     0.99  0.5
4     1.25  1.1
EOD
plot $d using 1:2:3 w lines lc palette z lw 2 

产生预期的输出

enter image description here

但是如果我将最后一行更改为

plot $d using 1:2:3 w steps lc palette z lw 2

我收到一条错误消息:

line 7: Too many using specs for this style

根据Gnuplot User Manual

中的段落 II绘图样式,步骤

输入列的要求与绘图样式的线和点相同。

以及在 II绘图样式,线条段中指出:

基本格式需要1、2或3列输入数据。其他输入列可用于提供信息,例如线条颜色可变

我在做什么错了?

解决方法

如果要绘制with steps,则问题可能是:垂直线应具有哪种颜色? 快速查看文档,我找不到提示with steps明显地起作用还是明显地不起作用。

在任何情况下,都可以使用以下代码来解决:

代码:

### plotting with steps and variable line color
reset session

$Data <<EOD
1     0.5   0.1
2     0.75  0.2
3     0.99  0.5
4     1.25  1.1
EOD

set xrange [0:5]
set yrange [0:1.5]

plot x1=y1=NaN $Data u (x0=x1,x1=$1,x0):(y0=y1,y1=$2,y0):(x1-x0):(0):3 w vectors lw 2 lc palette nohead notitle,\
     x1=y1=NaN $Data u (x0=x1,x1):(y0=y1,y0):(0):(y1-y0):3 w vectors lw 2 lc palette nohead notitle
### end of code

结果:

enter image description here

添加 :(颜色可变的垂直线)

也许您注意到在您的4个数据点中只有3种颜色。这很明显,因为如果您有4个数据点,那么您将只有3条连接线,因此只有3种颜色。

变化如下: 根据第3列的颜色绘制您的4个点,并使用与水平线相同的颜色。 但是,对于垂直线,您可以根据调色板使用相应的颜色将线分成所需的多个级别(此处为myLevels = 20)。

代码:

### plotting with steps and variable line color (vertical lines with variable color)
reset session

$Data <<EOD
1     0.5   0.1
2     0.75  0.2
3     0.99  0.5
4     1.25  1.1
EOD

set xrange [0:5]
set yrange [0:1.5]

myLevels = 20
plot x1=y1=c1=NaN $Data u (x0=x1,y0):(x1-x0):(0):(c0=c1,c1=$3,c0) w vectors lw 2 lc palette nohead notitle,\
     for [i=0:myLevels-1] x1=y1=NaN $Data u (x0=x1,y0+(y1-y0)*i/myLevels):(0):((y1-y0)/myLevels):(c0=c1,c0+(c1-c0)*i/myLevels) w vectors lw 2 lc palette nohead notitle,\
     $Data u 1:2:3 w p pt 7 ps 2 lc palette notitle
### end of code

结果:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。