Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Gnuplot上绘图-跳过线_Gnuplot - Fatal编程技术网

在Gnuplot上绘图-跳过线

在Gnuplot上绘图-跳过线,gnuplot,Gnuplot,我在Gnuplot中读取文件时遇到一些问题。 例如,我有这样一个文件: ___________________________________________ '#current' month followed retweeted mentioned replied Jan 395 29 35 28 Feb 380 28 32 31 '#previous' month followed retweeted mentioned replied Jan 381 30 38 32

我在Gnuplot中读取文件时遇到一些问题。 例如,我有这样一个文件:

___________________________________________
'#current' 
month followed retweeted mentioned replied 

Jan 395 29 35 28 

Feb 380 28 32 31 

'#previous' 
month followed retweeted mentioned replied 

Jan 381 30 38 32 

Feb 378 25 42 30 

Mar 374 28 46 40
______________________________________________________
我只需要读取第二个块,它以标记“#previous”开头。我怎么做?我试过这个命令:

plot "data.txt" index 'previous' using 3:xticlabel(1) axes x1y1 with lines linecolor rgbcolor "red",\

但它不起作用。有什么想法吗?

看看这个问题的答案

我想你需要像这样在索引后面加一个1

使用3:xticlabel(1)轴x1y1绘制“data.txt”索引1,线颜色为“红色”

编辑: 数据集为0索引,因此第一个块的索引为0,第二个块(上一个)的索引为1。您提到的关于错误行的错误表明我们的数据文件格式存在问题。 阅读这些链接中的数据格式

让我们把一切放在一起:

通过下面的链接,您可以了解如何过滤文件(这样您就可以在特定行之后获得所有内容)

因此,在我们的案例中:

sed-e'1,/previous/d'data.txt>gnuplot一些选项

我是从我的windows devel机器上写的,因此无法验证,但这应该会让您了解如何做到这一点

我还建议您定义提供给gnuplot的gnuplot配置文件。只需创建settings.pg并将其放在类似的位置(这是我为自己所做的一些工作的示例,因此它不适用于您的数据格式):

那么您的gnuplot调用将如下所示:

___________________________________________
'#current' 
month followed retweeted mentioned replied 

Jan 395 29 35 28 

Feb 380 28 32 31 

'#previous' 
month followed retweeted mentioned replied 

Jan 381 30 38 32 

Feb 378 25 42 30 

Mar 374 28 46 40
______________________________________________________
sed-e'1,/previous/d'data.txt>gnuplot您的_pg_文件.pg

您还需要检查gnuplot手册中的时间格式化


编辑:


如果这是你的大学作业,你不应该把你的问题贴在这里:-)我不想变得无聊或什么的,但这不是作业的目标,你在文件研究和尝试不同的事情之后找到你的解决方案吗?:-)

如果您在linux下工作,您可以只过滤“#previous”后面的任何内容,并使用特定的配置文件将其传输到gnuplot,该文件将考虑您的数据格式。请记住,在这种情况下,您可能想告诉gnuplot您的日期是如何格式化的。你能写一行吗,我应该用它来绘图?看看这个谷歌搜索:第一个链接来自堆栈溢出,你用它和管道到gnuplotIs这真的是数据格式吗?(例如,
“#previous”
周围是否真的有引号,记录之间是否有空行?)。如果是这样的话,这会使它更具挑战性(它肯定不是标准的gnuplot格式)“但它不工作”——什么失败了?那么,您使用的是哪个版本的gnuplot?但是为什么在“index”之后使用“1”?如何指定“上一个”标记?我曾尝试使用3:xticlabel(1)轴x1y1和linecolor rgbcolor红色线条绘制“data.txt”I 0 t“previous”,但它表示3行中存在错误数据..较新版本的gnuplot应接受一个字符串作为索引。我不能使用任何像“sed”这样的Linux命令因为之后我必须将解决方案上传到大学服务器,并且解决方案将被测试。它必须只包含Gnuplot comands。我是伊拉斯谟的学生,这门课的老师不在乎我们怎么做。他没有给我们任何文档或其他东西,只是告诉我们“使用谷歌”,仅此而已。我在谷歌上搜索了两天的解决方案,但我还没有找到好的解决方案。但是我们在
google
era:-)你可以在那里找到你的文档,不是吗?嗯,我不是在评判你——这是你的事,你怎么做作业。FWIW——你的烟斗放错地方了。Gnuplot将永远看不到数据,因为您没有告诉它读取任何内容。最好在plot命令中内联管道:
plot'
我无法测试它,因此您可能是对的。我会将它更新为另一种形式,我想这可能有用。谢谢