1

基于运行 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

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

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 输出?有什么技巧可以让它看起来更好看吗?

4

1 回答 1

1

如果您的 Gnuplot 版本足够新,您可以使用 for 循环和迭代器来循环您想要匹配的不同字符串,例如参见手册页 88-89此博客条目。要忽略不匹配的行,您可以使用三元运算符 ( cond ? iftrue : iffalse) 将这些值设置为 "Not-A-Number" (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
于 2013-01-14T08:42:05.660 回答