【问题标题】:gnuplot: How to increase the width of my graphgnuplot:如何增加图表的宽度
【发布时间】:2012-12-13 22:13:48
【问题描述】:

我正在使用“gnuplot”绘制带点的折线图:

set style data linespoints
set xlabel "number"

set ylabel "Dollars"
set yrange [0:250]

如何增加图表的宽度,以便当我有更多的“x”时,我希望我的图表更多的是矩形而不是正方形?

我怎样才能增加我的'y轴'的间隔?现在,它只是在我的 y 轴上每 50 个标记一个标记?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    听起来您希望您的输出根据正在绘制的数据动态调整大小。这是一个执行此操作的脚本:

    #!/usr/bin/env gnuplot
    
    # don't make any output just yet
    set terminal unknown
    
    # plot the data file to get information on ranges
    plot 'data.dat' title 'My Moneys'
    
    # span of data in x and y
    xspan = GPVAL_DATA_X_MAX - GPVAL_DATA_X_MIN
    yspan = GPVAL_DATA_Y_MAX - GPVAL_DATA_Y_MIN
    
    # define the values in x and y you want to be one 'equivalent:'
    # that is, xequiv units in x and yequiv units in y will make a square plot
    xequiv = 100 
    yequiv = 250 
    
    # aspect ratio of plot
    ar = yspan/xspan * xequiv/yequiv
    
    # dimension of plot in x and y (pixels)
    # for constant height make ydim constant
    ydim = 200 
    xdim = 200/ar
    
    # set the y tic interval
    set ytics 100 
    
    # set the x and y ranges
    set xrange [GPVAL_DATA_X_MIN:GPVAL_DATA_X_MAX]
    set yrange [GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX]
    
    # set the labels
    set title 'Dollars in buckets'
    set xlabel 'number'
    set ylabel 'Dollars'
    
    set terminal png size xdim,ydim
    set output 'test.png'
    set size ratio ar
    
    set style data linespoints
    
    replot
    

    对于这些示例数据:

    0 50
    50 150 
    100 400 
    150 500 
    200 300
    

    我得到以下情节:

    它应该是正方形的(我将 x 中的 100 个单位定义为 y 中的 250 个单位,并且数据跨越范围 [(0,200),(50,500)])。如果我添加另一个数据点 (400,300),输出文件会更宽,正如预期的那样:

    要回答您的其他问题,您可以这样设置 y tic 增量:

    set ytics <INCREMENT>
    

    上面的脚本给出了一个例子。

    【讨论】:

    • 旁注:在终端命令中定义大小 (set terminal png size ...) 定义了实际输出文件的大小,命令 set size ratio &lt;RATIO&gt; 设置输出中区域的纵横比,其中情节被绘制。我这样做是为了确保纵横比保持一致。
    【解决方案2】:

    为了补充这里的讨论,还有set size ratio ...,以便您可以设置绘图的纵横比。

    这是help set size的摘录:

    ratio 导致gnuplot 尝试创建一个纵横比为 (y 轴长度与 x 轴长度之比)在 &lt;xscale&gt;&lt;yscale&gt; 指定的绘图。

    负值的含义不同。如果 =-1,gnuplot 尝试设置比例,以使单位在两个 x 上具有相同的长度 和 y 轴(例如,适用于地理数据)。如果 =-2,则 y 上的单位的长度是 x 上的单位的两倍,依此类推。

    要让这个真正起作用,您可能需要将输出驱动程序设置为合理的大小:

    set term png size 800,400 #800 pixels by 400 pixels
    

    或:

    set term post size 8,4 #8 inches by 4 inches
    

    这完全取决于终端,因此查找终端的帮助以查看它使用的单位等是值得的。

    【讨论】:

      【解决方案3】:

      设置 xrange[:]

      设置 yrange[:]

      使用这 2 个命令来定义图表的“大小”;)

      【讨论】:

      • 没有。我想改变图表的“维度”。它总是给我一个“正方形”。我希望 x 轴比 y 轴长。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      相关资源
      最近更新 更多