标签: gnuplot

gnuplot - 如何保存与我在 xterminal 中设计的绘图相同的图形文件?

我制作情节已经有一段时间了,它们在屏幕上的表现正是我喜欢的方式。这些数据来自与太阳能收集和存储相关的传感器。

在屏幕上绘制的它们看起来很棒,所以我进行了屏幕区域捕获来保存它们。

所以现在我想自动化保存过程。

这是我到目前为止所做的:

  • 我设置了一个 cron 作业,以便它们在午夜运行,捕获一整天并将其保存为 .png 文件
  • 然后它将“today.dat”数据文件移动到按日期命名的存档中。
  • 这部分全部按设计工作。

但是,通过使用 .PNG,图像看起来不一样。我真的认为 png 将是最好的选择,但事实证明,用于 X 轴(HH:MM 刻度)的字体太粗并且它们一起运行。它看起来像是我的情节设计的蜡笔绘制版本。

有人可以给我一些指导,告诉我如何最好地以编程方式生成保存图,使它们看起来像我设计的那样吗?

graphics plot gnuplot

3
推荐指数
1
解决办法
741
查看次数

样本、等值样本以及它们如何影响轮廓线

如果您没有将samples和 都设置isosamples为适当的值,则由 gnuplot 生成的等高线可能看起来非常奇怪(意外)。我花了几个小时努力找出如何准确地set samples影响set isosamples轮廓线的外观,但是,我观察到的只是将两者设置为足够大的值将生成漂亮的轮廓。不过,我想了解它到底是如何工作的。

  1. 等高线set samples和之间有什么区别?set isosamples
  2. 如何set samples影响轮廓线的生成?
  3. 如何set isosamples影响轮廓线的生成?

例如,考虑以下简单情况:

unset surface
set contour
set cntrparam levels discrete 10, 20
set samples 250, 2
set isosamples 2, 250
set view map
splot x**2 + y**2
Run Code Online (Sandbox Code Playgroud)

要生成正确的轮廓线,您似乎需要将 的第一个参数samples和第二个参数设置isosamples为足够大的值。然而,将 的第二个参数samples和 的第一个参数设置isosamples为尽可能小的值并没有什么坏处。这并不完全直观。那么这是如何运作的呢?

gnuplot contour

3
推荐指数
1
解决办法
2452
查看次数

来自数据文件的 Gnuplot 3D 条形图

我有一个 gnuplot 脚本,可以生成如下所示的条形图:

酒吧示例

输入数据位于具有多列的文件中,每列最终构成图表中的一个簇(示例中显示了 2 个簇)。每个文件在图表中贡献一个条形(示例中有 9 个)。每个文件可能有大量行。

该脚本获取输入数据文件,并使用该stats命令生成包含原始文件每列一行的新文件。每行包含其源列的平均值、最小值和最大值。

然后使用这些新文件绘制带有误差线的条形图。每个文件代表一个条形图,每一行构成一个簇。剧情代码如下:

plot for [f in FILES] f.'.stats' using 2:3:4 title columnhead(1), \
     '' using (0):xticlabels(1) with lines
Run Code Online (Sandbox Code Playgroud)

现在我有第二组文件,可以生成另一个类似的条形图。我想将这些图表组合成一个,这样就会有两行 3D 条形图,一排在另一排前面(用 3D 样式渲染 - 新的“z”轴代表两个数据集(两组)的FILES)。

这是一个示例来说明我所追求的外观(显然不是用 gnuplot 制作的!):

在此输入图像描述

我可以用 Gunplot 做到这一点吗?

我已经阅读了用户手册和《Gnuplot In Action》一书,但没有发现任何表明这是可能的。

gnuplot

3
推荐指数
1
解决办法
4321
查看次数

Gnuplot 脚本:使用相对于文件的路径而不是执行目录?

.dat我在与需要绘制的文件相同的文件夹中生成一个 Gnuplot 脚本,即使从不同的目录调用它,我也希望它能够工作。不幸的是,相对路径似乎是在调用 Gnuplot 的目录中工作的,而不是在脚本文件所在的目录中工作的。例如:

gnuplot folder/script.gp
Run Code Online (Sandbox Code Playgroud)

如果文件是folder/data.dat并且脚本说将会失败plot "data.dat"。有什么办法可以解决这个问题吗?就像 Gnuplot 中保存当前执行脚本的位置的变量一样?

gnuplot

3
推荐指数
1
解决办法
2571
查看次数

向 xrange 和 yrange 添加额外的空格

我想使用 Gnuplot 脚本绘制多个文件。
然而,我在使其完美方面遇到了一些麻烦。


我的实际情节是这样的: 我的实际情节

但是,线点图同时接触 x 轴和 y 轴。
因此,我想在xrangeand上添加额外的空间yrange并得到 我想要的情节 它不会触及我的轴。


我可以使用set xrange和手动进行操作set yrange
然而,我需要绘制 100 多个不同的文件,这样做会非常耗时。

有某种方式可以自动增加某些单位的xrange大小吗?yrange

我的 Gnuplot 代码如下。

#!/usr/bin/env gnuplot

set terminal epslatex size 7.5,3 standalone
set output 'pareto.tex'

set style fill solid 0.8
set ytics nomirror
set xtics nomirror

set grid lc rgb "#F2F2F2"

set xlabel 'Z_1'
set ylabel 'Z_2'

set xrange [170:215]
set yrange [7:40]

set style line 1 lt rgb "#000000" lw …
Run Code Online (Sandbox Code Playgroud)

plot gnuplot

3
推荐指数
1
解决办法
247
查看次数

如何设置colorbox的位置?

我想在 xlabel 下的 x 轴下放置一个颜色框。我的意思是它应该从 0 开始,到 22 结束。

set colorbox horiz user origin .1,.02 size .8,.04
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

谢谢

gnuplot

3
推荐指数
1
解决办法
1188
查看次数

Gnuplot multiplot 中的双柱图

我尝试创建多图 (2x2) 和单图的组合。我不确定我做错了什么,但我不知道该怎么做。我的尝试:

plot sin(x) title "this should be a single plot"

set multiplot layout 2,2 title "Those are the multiplots"

set title "A!"
plot sin(x)

set title "B!"
plot cos(x) not

set title "C!"
tan(x) title "tan"

set title "D"
tan(0.5*x) not
Run Code Online (Sandbox Code Playgroud)

不管我把情节放在后面还是前面,但我无法想象它。

谢谢。

gnuplot

3
推荐指数
1
解决办法
1341
查看次数

如何对 gnuplot 中的整列求和?

我有多个像这样的 CSV 文件(只有一列):

3
4
2.3
0.1
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个包含<filename>:<sum of the column>.

但目前我很难总结一个专栏:

plot 'data1.txt' using 0:(sum [col = 0:MAXCOL] (col)) with linespoint;
Run Code Online (Sandbox Code Playgroud)

gnuplot

3
推荐指数
1
解决办法
2551
查看次数

如何在 SVG 中的 Gnuplot 中显示鼠标悬停时的值?

在注意到https://lwn.net/Articles/723818/上的交互式 gnuplot 图形在鼠标悬停时显示国家/地区名称后,我想知道如何简单地显示图中点的值。

例如,我想将鼠标悬停在https://s.natalian.org/2020-08-24/mouse-hover.svg中的“daughter bar”上并清楚地看到60

SVG悬停

然而现在它只显示坐标 IIUC。我该如何解决?

set term svg mouse standalone
reset
$heights << EOD
dad                     181
mom                     170
son                     100
daughter        60
EOD

unset key
set boxwidth 0.5
set style fill solid
set yrange [0:*]

plot '$heights' using 2:xtic(1) with boxes
set output '/tmp/mouse-hover.svg'
replot
Run Code Online (Sandbox Code Playgroud)

svg gnuplot

3
推荐指数
1
解决办法
648
查看次数

vim 中的 gnuplot 突出显示

我使用 gnuplot 来显示数据,并且通常在 vim 中编辑文件。如果可能的话,我希望有某种语法突出显示。我尝试使用 gnuplot 的 vim 插件安装几个插件,但似乎无法使其工作。这是我的文件的内容.vimrc

call plug#begin()

Plug 'tpope/vim-sensible'

Plug 'flazz/vim-colorschemes'

Plug 'junegunn/seoul256.vim'

Plug 'junegunn/vim-easy-align'

Plug 'vim-scripts/gnuplot.vim'

call plug#end()

if has("syntax")
  syntax on
endif

let mapleader=","
set cindent
set statusline+=col:\ %c,
set ruler
set nu
set showcmd
set nocompatible
set nosol
set background=dark
set autoread
set wildmenu
set lazyredraw
set magic
set showmatch
set mat=10
set noerrorbells
set novisualbell
set autoindent
set smartindent
set cursorline
set ic
set hls
set lbr
set shiftwidth=4
set …
Run Code Online (Sandbox Code Playgroud)

vim syntax-highlighting gnuplot

3
推荐指数
1
解决办法
663
查看次数

标签 统计

gnuplot ×10

plot ×2

contour ×1

graphics ×1

svg ×1

syntax-highlighting ×1

vim ×1