如何通过第三列中的键改善彩色线图?

时间:2013-01-14 07:56:13

标签: gnuplot

Laptop temperature based on running kernelkey

我正在尝试绘制笔记本电脑的温度,这是我github

的工作文件

我有时代,温度和温度内核标识符数据如下:

1357786501 72 3.6.11-1-ARCH
1357786801 72 3.6.11-1-ARCH
1357787101 60 3.0.57-1-lts
1357787401 54 3.0.57-1-lts
1357800301 52 3.0.57-1-lts
1357800601 48 3.6.11-1-ARCH
1357800902 45 3.6.11-1-ARCH

我最接近我想要的是(使用this):

set term svg size 1024,708
set xdata time
set key outside
set timefmt "%s"
set ytics 5
set format x "%d/%m"
plot "< awk '{if($3 == \"3.0.57-1-lts\") print}' temp.csv" u 1:2 t column(3) w p pt 2, \
 "< awk '{if($3 == \"3.6.10-1-ARCH\") print}' temp.csv" u 1:2 t column(3) w p pt 2, \
 "< awk '{if($3 == \"3.6.11-1-ARCH\") print}' temp.csv" u 1:2 t column(3) w p pt 2, \
 "< awk '{if($3 == \"3.8.1-1-mainline-dirty\") print}' temp.csv" u 1:2 t column(3) w p pt 2

gihub kaihendry

有没有办法避免使用awk?当我不使用这个awk时,它无法绘制不同的内核标识符。

我可以用不同颜色制作一条连续的线吗?

如何在没有宽度/高度的情况下制作SVG输出?任何让它看起来更好的技巧?

1 个答案:

答案 0 :(得分:1)

如果你的Gnuplot版本足够新,你可以使用for循环和迭代器遍历你想要匹配的不同字符串,例如参见manual page 88-89this blog entry。要忽略不匹配的行,您可以使用三元运算符(cond ? iftrue : iffalse)将这些值设置为&#34; Not-A-Number&#34; (1/0NaN):

set xdata time
set key outside
set timefmt '%s'
set ytics 5
set format x '%d/%m'
set style data linespoints
archs = "`cut -d' ' -f3 temp.csv | sort -u | tr '\n' ' '`"
plot for [arch in archs] 'temp.csv' using 1:((strcol(3) eq arch) ? $2:1/0) title arch