如何在全屏和特定大小打开gnuplots?

 海边遗忘的时光_958 发布于 2022-12-26 22:49

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

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

    如何全屏打开多色文件?

    如何使输出文件具有特定大小?

这是我当前的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吗?谢谢.

1 个回答
  • 您必须基于像素的终端(区分pngcairo,png,canvas(...)和所有交互终端wxt,x11,qt,windows,aqua,这里的大小是在像素给出.对于基于矢量的终端(postscript,svg,postscript等)的尺寸以英寸给出或厘米.

    使用该-geometry标志仅适用于x11终端:

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

    对于所有其他基于像素的终端,您可以使用该size选项以像素为单位设置画布大小:

    set terminal pngcairo size 800,800
    

    当然,您也可以提取显示器分辨率并将其用作大小.这里有两种变体:

      在shell上提取监视器大小:

      monitorSize=$(xrandr | awk '/\*/{sub(/x/,",");print $1; exit}')
      gnuplot -e "monitorSize='$monitorSize'; load 'gnuplotCode'"
      

      gnuplotCode然后该文件必须使用gnuplot变量monitorSize,如下所示:

      set macros
      set terminal pngcairo size @monitorSize
      set output 'foo.png'
      plot x
      

      请注意,字符串变量的内容monitorSize必须用作宏,即在评估整行之前插入值.

      如果你不想在shell上有这个额外的行,你也可以xrand通过system函数从gnuplot脚本中调用这些东西.在这种情况下,文件gnuplotCode看起来如下:

      monitorSize=system("xrandr | awk '/\*/{sub(/x/,\",\");print $1; exit}'")
      set macros
      set terminal pngcairo size @monitorSize
      set output 'foobar.png'
      plot x**2
      

      你只能打电话给gnuplot gnuplotCode.

    请注意,shell命令始终只提取第一个监视器的信息.

    2022-12-26 23:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有