GNUPLOT绘制5天财政周

时间:2012-03-13 08:40:03

标签: gnuplot financial

我一直在寻找一段时间来了解如何从财务情节中删除一周中没有成功的日子。

我需要的情节只包括一周的日子,并完全错过周末,以便金融图表中没有2天的差距。

我有CSV格式的数据打开/关闭/关闭/高,它有周末数据丢失,它很好,但我找不到如何不显示周末,任何帮助将非常感谢。

我希望看到它基本上是M / T / W / T / F / M / T / W / T / F而不是M / T / W / T / F / S / S / M等......

干杯,

克里斯。

5 个答案:

答案 0 :(得分:1)

据我所知,gnuplot本身无法做到这一点 - 您需要先将文件转换为所需的形状。如果您使用的是Linux,可以使用

之类的功能完成
awk '{if( index( $1, "S" ) == 0 ) print $0 >> "new.dat"}' old.dat

其中old.dat是您的原始文件,new.dat是没有周末的新文件。我假设您的数据文件将工作日作为每行中的第一个条目。

这也适用于Windows,但您需要先安装Gawk for Windows

答案 1 :(得分:0)

数据未显示在文件中,文件只是基于工作日而错过了周末。如果你绘制数据,你会在周末得到这些2天的差距,所以我想删除这些差距。它更像是在周末进行的x轴线性化。

以下是文件部分的示例:

2006-03-23T16:59 1.7470 1.7324 1.7471 1.7344 0.0000 0.0000 0.0000 0.0000


2006-03-24T16:59 1.7346 1.7308 1.7441 1.7428 0.0000 0.0000 0.0000 0.0000
2006-03-27T17:59 1.7424 1.7415 1.7492 1.7459 0.0000 0.0000 0.0000 0.0000
2006-03-28T17:59 1.7462 1.7422 1.7537 1.7424 0.0000 0.0000 0.0000 0.0000

如果查看日期,文件中会有间隙。应该有差距,因为这些天没有数据。然而,该图应该没有间隙地运行,这正是我想要实现的目标。

答案 2 :(得分:0)

使用一些外部工具(我会写一个bash或python脚本,我相信;这应该不难),你可以在周末天(一天一行)中插入行到你的数据文件中,就像这样:

2006-03-26T00:00 NaN NaN NaN NaN NaN NaN NaN NaN

(或者你可以在数据文件的末尾附加那些NaN个周末并使用unique关键字)

然后使用using 1:($2) with linespoints绘制第一个数据, using 1:2 ...

这应该适合你。

答案 3 :(得分:0)

我今天刚遇到set xdtics。我怀疑你还在为此工作,但也许这会对其他人有所帮助......(见help xdtics

答案 4 :(得分:0)

假设您的数据文件在任何工作日都没有丢失,您可以将日期列视为字符串类型。 (如果你错过了工作日,你的图表将跳过这些日期而不为他们分配任何空间,这很容易错过,所以要小心。)

我的日期是YYYY-MM-DD格式的数据文件中的第一列。我正在绘制的数据位于第二列。以下是我的gnuplot配置的相关行:

set format x '%s'
plot 'file' using 0:2:xtic(substr(strcol(1),6,10))

set format行告诉gnuplot如何打印x标签。 using配置使用第0列(索引)作为x参数,第2列(数据)作为y参数,并提供打印标签的特殊说明:仅打印字符6-10。 (这会削减年份部分,这有助于标签在我的情况下不会重叠。)

另见this SO answer。我不想在每个周末复制这个“破轴”解决方案,但也许它可以激发灵感。

相关问题