我在阅读我的文件时遇到了一些问题。例如,我有一个这样的文件:
___________________________________________
'#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",\但不起作用。有什么想法吗?
发布于 2013-05-02 22:36:53
看看这个问题的答案
我认为您需要在索引后面添加一个1,如下所示
用3:xticlabel(1)轴绘制"data.txt“索引1
编辑:数据集是0索引的,所以第一个块被索引为0,第二个块(前一个)有一个索引。您提到的关于坏行的错误表明我们的数据文件格式有问题。阅读关于这些链接的数据格式的http://www.gnuplotting.org/plotting-data/ http://lowrank.net/gnuplot/datafile2-e.html。
发布于 2013-05-02 22:41:50
让我们把所有的东西放在一起:
按照这链接,您可以学习如何过滤文件(这样您就可以在特定行之后获得所有内容)
因此,在我们的例子中:
sed -e '1,/previous/d' data.txt > gnuplot some_gnuplot_options
我是在我的windows开发机器上写这个的,所以不能验证,但是这应该会让你知道你是如何做到的。
我还建议定义您提供给gnuplot的gnuplot文件。只需创建settings.pg并放置如下内容(这是我为自己做的一些工作中的示例,因此它不适用于您的数据格式):
set terminal png size 1024, 360
set output "load.png"
set datafile separator "\t"
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set format x "%m/%d\n%H:%M"
set xrange["2012-04-29 11:00:00":"2012-05-01 11:58:00"] noreverse nowriteback
set autoscale y
set grid
set key left box
plot "chart.txt" using 1:2 t 'column_1' with lines, "chart.txt" using 1:3 t 'column_2' with lines因此,您的gnuplot调用将如下所示:
sed -e '1,/previous/d' data.txt > gnuplot your_pg_file.pg
您还需要检查从gnuplot手册这里生成的时间。
编辑:
如果这是你的大学作业,你不应该在这里张贴你的问题:-)我不想无聊什么的,但你不想在文献研究和尝试不同的事情之后找到你的解决方案吗?-)
https://stackoverflow.com/questions/16348594
复制相似问题