我正在绘制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吗?谢谢.
您必须基于像素的终端(区分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命令始终只提取第一个监视器的信息.