【问题标题】:Change "fill style" or "line style" in Gnuplot automatically自动更改 Gnuplot 中的“填充样式”或“线条样式”
【发布时间】:2013-05-07 02:20:39
【问题描述】:

我需要绘制一个网格。网格的每个部分都可以有不同的颜色/样式。此样式对应于文件中指定的值。我认为boxxyerrorbars 风格可能是相关的。我创建了一个包含 7 列的文件:

#x  y   xlow  xhi  ylow yhi  style 
1   1   0.9   1.1  0.5  1.5   0.2
2   1   1.9   2.1  0.5  1.5   0.4
3   1   2.9   3.1  0.5  1.5   0.6

我使用boxxyerrorbars 样式和数据中的前 6 列进行绘图:

plot[0:4][0:2] 'aa1.dat' w boxxy fs solid 0.6 nobo 

情节(只有网格的三个部分)看起来...(没有足够的声誉来提交图像)。

所有线段均使用样式solid 0.6 绘制。通过改变这个数字,可以改变fill style 的密度。但我需要每个段都有自己的样式,例如,在数据的第 7 列中指定。也许,还有其他方法。我只需要使用从文件中指定的样式/颜色绘制段(不是手动插入到脚本中)。

【问题讨论】:

    标签: graphics gnuplot


    【解决方案1】:

    将调色板选项添加到您的绘图中

    palette 选项将根据数据文件最后一列的值自动分配当前调色板中的颜色值(在本例中为第 7 列,在普通函数图中为第 3 列) .

    plot ... palette
    

    根据需要调整调色板

    在绘图之前,您应该将 gnuplot 调色板设置为您喜欢的颜色。 为此,请使用 set paletteset cbrange

    示例

    set palette model RGB defined ( 0 "white", 1 "red")  
    set cbrange[0:1]
    unset colorbox
    plot[0:4][0:2] 'data.txt' w boxxy fs solid  palette
    

    说明

    • 在第一行中,我们将调色板设置为从白色变为红色。
    • set cbrange[0:1] 定义调色板的范围,即 0 为纯白色,1 为红色(如果您不设置自己的 cbrange gnuplot 将从数据中获取最小值/最大值)
    • unset colorbox 告诉 gnuplot 不要在绘图旁边绘制颜色框标签

    进一步调整

    您还可以调整调色板以具有离散的颜色值(即不仅是渐变)。

    例如 设置调色板模型RGB定义(0“蓝色”,1“蓝色”,1“深绿色”,2“深绿色”,2“红色”,3“红色”) 设置 cbrange [1:3]

    将文件样式列中的值设置为 1,2 或 3 将分别为您提供蓝色、绿色或红色。

    #x  y   xlow  xhi  ylow yhi  style 
    1   1   0.9   1.1  0.5  1.5   1
    2   1   1.9   2.1  0.5  1.5   2
    3   1   2.9   3.1  0.5  1.5   3
    

    【讨论】:

    • 非常感谢您的帮助。下载ver.4.6(之前使用4.2)后,我得到了类似的解决方案。正如你所建议的,我使用了w boxxy fs solid pal。此外,如果 style 可以是 1、2、3,则可以使用 plot[0:4][0:2]'aa1.dat' w boxxy fs solid lc var ,这与您的第二种方法类似。
    • 如果您认为它正确/有帮助,请不要忘记接受我的回答;)或添加您的解决方案作为问题的答案
    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 2019-09-13
    • 2012-07-25
    相关资源
    最近更新 更多