代码之家  ›  专栏  ›  技术社区  ›  damaihati

从gnuplot保存的高分辨率绘图

  •  0
  • damaihati  · 技术社区  · 2 年前

    我有一个目录,里面有10个子目录,分别称为run1、run2。。。,run10.一个程序,比如说A.f95,在这10个子目录中的每一个子目录中运行。每个版本中都有一些随机数,我们正在运行10次代码来比较一些结果。通过在run1、run2、…中的每一个内运行a.f95 10次。。。文件夹中,每个子目录中有30个数据文件。 我需要绘制这些30x10的数据文件,并比较这些图以找到一些模式。所以,我不可能用手来做这件事。

    我们知道,交互式qt终端中的绘图分辨率比从pdfcairo保存的pdf要好得多。我无法通过单击每个qt窗口中的“保存”按钮来保存每个qt图。我需要数据的矢量图,如下所示。顶部的一个已从qt输出窗口保存为png。底部的一个是通过使用pngcairo获得的。

    png saved from qt window

    png version obtained using pngcairoenter image description here

    我的问题是,

    1. 如何从命令行以矢量图形格式保存高分辨率(如qt-like)图 (PDF) ? 我还需要高分辨率的PNG图像来创建进化动画。
    2. 如何在终端的每个run*子目录中保存30个gnuplot图,最好使用bash脚本?

    如有任何建议,我们将不胜感激。非常感谢。

    我使用生成了png输出

    set term pngcairo
    set size square
    p 'data_fl.400.dat' u 3:4:5:6 w vec
    

    编辑1:在每个子目录运行*(例如,运行1、运行2、…)中,数据文件命名为data_fl.0.dat、data_fl.50.dat、data _fl.100.dat、数据_fl.150.dat、。。。,data_fl.1500.dat,即数据已经以50个时间步长的间隔被写入。

    编辑2:我也使用pdfcairo进行了绘图,尽管我无法将输出作为图像共享。从qt窗口获得的pdf与从pdfcairo获得的pdf之间的区别在于,在后者中,箭头不像qt中那样尖锐(看起来更厚)。

    0 回复  |  直到 2 年前
        1
  •  3
  •   theozh    2 年前

    如果您想要一个高分辨率的PNG,请尝试以下方法:

    set term pngcairo size 2000,2000
    set output "SO76799020.png"
    set size square
    plot sin(x)/x    # or whatever you want
    set output
    

    如果要将目录中的所有文件打印到不同的打印中,请选中此项:

    How to plot all data files in the directory with gnuplot?

    如果您有更具体的问题,请编辑您的问题,并详细描述您想要什么和尝试了什么。

        2
  •  1
  •   helper    2 年前

    我使用:

    set term push
    set term postscript enh landscape "Arial" 10 color dl 0.75
    set out "gnu.ps"
    set size 1.1,1.1
    set origin -.1,-.05
    rep
    set size 1,1
    set origin 0,0
    set term pop
    set out
    

    要创建postscript文件,请在cygwin中使用ps2pdf转换为PDF(如果您在windows上)。

    然后我可以打开PDF并放大到我想要的程度,图像是清晰的。

        3
  •  -1
  •   helper    2 年前

    我进行了实验,这对我来说很有效:

    set term push # save current terminal that is used to view graph
    set term pdfcairo enh font "Arial,15" color dl 0.75 size 9,6.5 # set terminal to pdfcairo with parameters I found to work
    # Arial font, color plot, dash length (dl) 0.75 - from previous work, may not be needed
    # size 9 inch by 6.5 inch - fit page well
    set out "gnu.pdf" # set filename for output
    set size 0.95,0.95 # size plot to fit well with axis labels
    set origin 0.025,0.01 # position plot on page
    rep # create plot (replot)
    set size 1,1 # reset size to default
    set origin 0,0 # reset plot position
    set term pop # set term to previous (saved) terminal type
    set out # clear output filename - return to original windowed plotting
    

    我将其保存到gnuplot文件(*.plt或*,dem)中,并在需要pdf版本的绘图时加载它。例如,将其保存到<gnuplot目录>\共享\并键入:

    load 'pdf_plot.plt'
    

    制作一个名为gnu.pdf的pdf。如果您想要更完整的答案,请参阅:

    Gnuplot pdf output overwrite on Windows