gpt4 book ai didi

gnuplot - GNUPLOT 图中的空白区域

转载 作者:行者123 更新时间:2023-12-02 02:10:06 26 4
gpt4 key购买 nike

我在我的 gnuplot 脚本中遇到了奇怪的行为。此脚本的目的是读取文件并使用文件的第一行作为系列标题绘制一组特定的线(基于文件中给定起点的 3 条连续线)。

虽然该图在概念上有效,但我在左侧的图像中遇到了一个大插入,就好像读取了一个空行并将其绘制为 0(没有标题)

输入文件:

Level,Filter,Type,Set1,Set2,Set3
Level1,Filter1,Type1,112,186,90
Level1,Filter1,Type2,233,335,159
Level1,Filter1,Type3,224,332,157

代码:

set terminal postscript color
set output '| epstopdf --filter --outfile=output.pdf'

set boxwidth 0.5
set style fill solid
set style data histograms

set datafile separator ","

LINE1 = 1 + 3 * COUNT
LINE2 = LINE1 + 1
LINE3 = LINE1 + 2

plot '../test.csv' \
u ( ( int($0) == LINE1 || int($0) == LINE2 || int($0) == LINE3)? $4 : 1/0) ti col,'' \
u ( ( int($0) == LINE1 || int($0) == LINE2 || int($0) == LINE3)? $5 : 1/0) ti col,'' \
u ( ( int($0) == LINE1 || int($0) == LINE2 || int($0) == LINE3)? $6 : 1/0) ti col

命令行调用

>gnuplot -e "COUNT=0" test.plot

我怎样才能去掉导致右移的空白字段?

我的 gnuplot 版本是 4.6。

最佳答案

因为您已经在使用管道和 unix-ish 工具,所以我也会在这里使用 sed:

set term post color
set output 'foo.ps'

set style data histograms
set style histogram clustered

set datafile separator ","

set boxwidth 0.5
set style fill solid

SED_CMD = sprintf('< sed -n -e 1p -e %d,%dp test.csv',COUNT*3+2,COUNT*3+4)

plot for [COL=4:6] SED_CMD u COL ti col

在我试图弄清楚您的脚本在做什么时,我已经简化了很多事情——我使用了绘图迭代(在 gnuplot 4.3 中引入)。最初我以为 plot '...' every ... 会起作用,但直方图似乎在 every 上窒息而且我(还!)不明白为什么.

下面是对 sed 命令的解释:

-e 1p      #print first line in file
-e %d,%dp #print n'th line through m'th line (inclusive) where n=COUNT*3+2 and m=COUNT*3+4

如果您担心 shell 注入(inject),这似乎也是安全的:

gnuplot -e 'COUNT=";echo hi"' -persist test.gp
"test.gp", line 10: Non-numeric string found where a numeric expression was expected

Gnuplot 只会将数字写入您的命令字符串。

关于gnuplot - GNUPLOT 图中的空白区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com