如果更改了y列的线条样式,则会在多重绘图中更改网格线

时间:2016-01-09 04:24:52

标签: gnuplot

我正在尝试在png文件中绘制多个图。 Multiplot有8个图。每个绘图都有两个y轴,并且网格将以ls 0显示。一切正常,直到我改变绘图的线宽。当我直接在绘图中更改线条样式或线宽时,其余图形中的网格将以新的线宽和颜色显示。我在Windows 7 MinGW中使用GNU Plot版本5。

我已经尝试过的事情是在网格中设置线条样式,如下所示:

1。         设置风格线4 lc rgb' black' lt 0         设置网格xtics ytics y2tics ls 4

  1. 设置线宽,同时绘制如下:                                 input_filename使用11:9,行轴x1y2 lc rgb'绿色' lw 2 title' Plot-5'
  2. enter image description here

    但没有任何作用。以下是完整代码:

    #----------------
    #input variables
    #----------------
    #input_filename 
    #png_filename
    
    
    #----------------
    # Sample Command: 
    # 
    #   gnuplot -e "input_filename='test.csv'" -e "png_filename='test.png'" gnuplotMultiSample_A.plt
    #
    #----------------
    
    
    
    #----------------
    # Code Starts
    #----------------
    
    reset
    
    
    set term pngcairo size 2560,1920
    #set terminal pngcairo dashed
    #set termoption dashed
    
    set datafile separator ","
    #set term png
    set output png_filename  
    
    set size 1,2
    #set terminal png size 2560,1920
    
        set ytics nomirror
        set y2tics
    
    
        set multiplot layout 4,2 columnsfirst title png_filename
    
            set style line 81 lc rgb 'red' lt 3 lw 1 
            set style line 82 lc rgb 'blue' lt 2 lw 2
            set style line 83 lc rgb 'green' lt 1 lw 1 
            set style line 84 lc rgb 'black' lt 0 lw 1
    
    
            unset grid
            #set grid xtics ytics y2tics lt 0  lc rgb "#880000"
            #set grid xtics ytics y2tics lt 1 lw 1 lc rgb "#880000"     
                                            # Line type 1 works for Png but not lt 0. As per the guidelines
                                            # trying using "set terminal pngcairo dashed" as per the site: 
                                            #           http://stackoverflow.com/questions/19412382/gnuplot-line-types/19420678#19420678
                                            #           http://stackoverflow.com/questions/34689654/grid-lines-are-changed-in-multiplot-if-lines-styles-of-y-column-is-changed/34751992#34751992
            set grid xtics ytics y2tics lt 0 lw 1 lc rgb "#880000"
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:1 with lines axes x1y2 lc rgb 'green' title 'Plot-1'  
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:3 with lines axes x1y2 ls 82 title 'Plot-2'  
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:5 with lines axes x1y2 ls 83 title 'Plot-3'  
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:7 with lines axes x1y2 ls 84 title 'Plot-4'  
    
    
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:9 with lines axes x1y2 lc rgb 'green' title 'Plot-5'  
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:11 with lines axes x1y2 lc rgb 'green' title 'Plot-6'  
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:1 with lines axes x1y2 lc rgb 'green' title 'Plot-7'  
    
            plot input_filename using 11:12 with lines axes x1y1 ls 81 title 'Actual', \
                                        input_filename using 11:3 with lines axes x1y2 lc rgb 'green' title 'Plot-8'  
    
            unset grid
    
        unset multiplot
    

    使用pngcairo。以下是最终的参考代码。谢谢Schorsch。

    {{1}}

1 个答案:

答案 0 :(得分:2)

我相信您的问题与您设置的线条样式有关:

set style line 1 lc rgb 'red' lt 3 
set style line 2 lc rgb 'blue' lt 2 lw 2
set style line 3 lc rgb 'green' lt 1 
set style line 4 lc rgb 'black' lt 0

由于存在预定义的线型,这些线型可能无法正常工作,最终会在多色情环境中弄乱网格线。更具体地说,选项lw 2会破坏您的网格线。

Printing a test output png terminal您可以看到有80种预定义的线型:

test for png terminal

因此,将上述行更改为

set style line 81 lc rgb 'red' lt 3 
set style line 82 lc rgb 'blue' lt 2 lw 2
set style line 83 lc rgb 'green' lt 1 
set style line 84 lc rgb 'black' lt 0

并修改脚本中的plot命令以引用这些线型号,您将获得此图:

new plot

调试备注:

  1. 真正看起来搞乱情节的是lw 2选项。奇怪的是,如果您使用lw 3指定网格线,它们不会受到影响(但也会比您想要的更厚)。

  2. 各种组合中的dashtype选项似乎也无法解决您的问题。对于网格线,它完全被忽略。

  3. 除了一种预定义的线型之外的任何其他内容都会导致此问题。您可以选择lt 8并获得纯黑色网格线。

  4. 您可以考虑使用其他终端:

    `set terminal pngcairo` 
    

    使用不同的终端,您的原始脚本将按预期运行。