【问题标题】:gnuplot's 'steps' style does not accept variable colorgnuplot 的“步骤”样式不接受可变颜色
【发布时间】:2020-11-07 08:50:37
【问题描述】:

我在 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 

产生预期的输出:

但是如果我把最后一行改成

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 Plotting Styles, Steps

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

并且在II Plotting Styles, Lines 段中指出:

基本表单需要 1、2 或 3 列输入数据。额外的输入列可用于提供可变线颜色等信息

我做错了什么?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    如果你在画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=$1,x1):(y0=y1,y1=$2,y0):(0):(y1-y0):3 w vectors lw 2 lc palette nohead notitle
    ### end of code
    

    结果:

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

    也许您注意到您的 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,x1=$1,x0):(y0=y1,y1=$2,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,x1=$1,x1):(y0=y1,y1=$2,y0+(y1-y0)*i/myLevels):(0):((y1-y0)/myLevels):(c0=c1,c1=$3,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
    

    结果:

    【讨论】:

    • 这不是一种解决方法,而是对我的问题的更好解决方案,而不是它的步骤允许更改我需要的垂直线的颜色!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    相关资源
    最近更新 更多