output - 如何以全屏和特定大小打开 gnuplot?

标签 output gnuplot

我正在 gnuplot 中绘制图形,并希望以全屏和特定大小打开它们。

以前,我一直在多图模式下输出图形并使用 reread 更新它们;因此,当我手动最大化它时,经过几次迭代后,这些图会填满屏幕。现在,我还想将输出保存为文件。当我打开该文件时,它与原始多图输出的大小相同。但是,当我最大化它时,绘图的大小不会增加以填满屏幕。我有两个问题:

  • 如何全屏打开多图文件?
  • 如何使输出文件具有特定大小?

  • 这是我当前的 gnuplot 代码(在一个名为 gnuplotCode 的文件中):
    set terminal pngcairo dashed enhanced
    set output 'foo.png'
    set multiplot layout 3, 3
    plot for [iter=1:9] path/to/file using 1:(column(iter)) notitle
    unset multiplot
    unset output
    pause 10
    reread
    

    我尝试输入以下内容:
    gnuplot -geometry -3360-1050 gnuplotCode    # where my screen size is 3360x1050
    

    和:
    resolution=$(xrandr | grep '*') && resolution=${resolution%  *}
    gnuplot -geometry $resolution gnuplotCode
    

    但两种方法都不起作用。请您告诉我如何以全屏和特定尺寸打开 gnuplots?谢谢。

    最佳答案

    您必须区分基于像素的终端( pngcairopngcanvas (...) 和所有交互式终端 wxtx11qt 、 |7 , |1914| 、 |7 , |104| 4 |尺寸以像素为单位。对于基于矢量的终端( windowsaquapostscript 等),尺寸以英寸或厘米为单位。

    使用 svg标志仅适用于 postscript终端:

    gnuplot -geometry 800x800 -persist -e 'set terminal x11; plot x'
    

    对于所有其他基于像素的终端,您可以使用 -geometry以像素为单位设置 Canvas 大小的选项:
    set terminal pngcairo size 800,800
    

    当然,您也可以提取显示器分辨率并将其用作大小。这里有两种变体:
  • 提取 shell 上的监视器大小:
    monitorSize=$(xrandr | awk '/\*/{sub(/x/,",");print $1; exit}')
    gnuplot -e "monitorSize='$monitorSize'; load 'gnuplotCode'"
    

    文件 x11然后必须使用 gnuplot 变量 size如下:
    set macros
    set terminal pngcairo size @monitorSize
    set output 'foo.png'
    plot x
    

    注意,字符串变量 gnuplotCode 的内容必须用作宏,即在评估整行之前插入值。
  • 如果你不想在 shell 上多加一行,你也可以调用 monitorSize gnuplot 脚本中的内容通过 monitorSize功能。在这种情况下,文件 xrand如下所示:
    monitorSize=system("xrandr | awk '/\*/{sub(/x/,\",\");print $1; exit}'")
    set macros
    set terminal pngcairo size @monitorSize
    set output 'foobar.png'
    plot x**2
    

    您只能使用 system 调用它.

  • 请注意,shell 命令 as 始终仅提取第一个监视器的信息。

    关于output - 如何以全屏和特定大小打开 gnuplot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25409071/

    相关文章:

    java - 以表格格式打印数组

    javascript - 如何添加多个文本框来替换页面上的文本

    gnuplot - 将字符串列转换为数字列以在 GNUPLOT 中绘图

    image - gnuplot:如何为每个像素绘制一个2D数组元素而没有空白

    bash - 仅在 gnuplot 中绘制特定列

    string - Gnuplot:使用字符串变量定义列

    python - 将输出命令重定向到变量或文件?

    arrays - 从txt文件中逐个字符读取,然后写入C中的另一个文件?

    linux - 每次返回新输出时将应用程序输出的最后一行重定向到文件

    colors - 使用 gnuplot 将箱线图中的框背景设置为特定颜色