同じグラフを異なる時間範囲で生成する複数の gnuplot ファイルがあります。したがって、すべてをレンダリングするもの、過去 48 時間のみをレンダリングするもの、特定の月をレンダリングするものがあります。
私の質問は今、ほとんどの設定を再利用して(ほとんど同じであるため)、プロット範囲と出力ファイルの値のみを変更する方法はありますか?
これらは、たとえば 48 時間の設定です。
set xlabel "Date (UTC)"
set ylabel "Size (Gibibytes)"
set title sprintf("Storagespace used and available (Generated: %s)", date)
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set format x "%Y\n%m-%d\n%H:%M"
set xtics rotate
set terminal svg size 1280,720
set output "/var/www/sizes/sizes-graph-48h.svg"
set datafile separator " "
set autoscale xfix
set key below
set grid xtics ytics
FACTOR=1024*1024
plot "< tail -48 /home/fabian/sizes" using 1:($3/FACTOR) title 'Used by 4th/Aufnahme' with lines lc rgb "#008080", \
"" using 1:($2/FACTOR) title 'Used by 3rd/Aufnahme' with lines lc rgb "#65000B", \
"" using 1:($5/FACTOR) title 'Available on 4th' with lines lc rgb "blue", \
"" using 1:($4/FACTOR) title 'Available on 3rd' with lines lc rgb "red", \
"" using 1:(($5+$3*17/20)/FACTOR) title 'Est. max. available on 4th' with lines lc rgb "#0F52BA", \
"" using 1:(($4+$2*17/20)/FACTOR) title 'Est. max. available on 3th' with lines lc rgb "#E62020", \
20 notitle
48 時間設定と特定の月の設定の違いは次のとおりです。
9c9
< set output "/var/www/sizes/sizes-graph-48h.svg"
---
> set output sprintf("/var/www/sizes/sizes-graph-%s.svg", month)
15c15
< plot "< tail -48 /home/fabian/sizes" using 1:($3/FACTOR) title 'Used by 4th/Aufnahme' with lines lc rgb "#008080", \
---
> plot sprintf("< grep \"%s*\" /home/fabian/sizes", month) using 1:($3/FACTOR) title 'Used by 4th/Aufnahme' with lines lc rgb "#008080", \
ご覧のとおり、出力ファイル ( に設定month
することは可能48h
です) とプロット範囲パラメーターを除いて、それらは同一です。ここで完了するのは、48 時間設定と「全体」設定の違いです。
9c9
< set output "/var/www/sizes/sizes-graph-48h.svg"
---
> set output "/var/www/sizes/sizes-graph.svg"
15c15
< plot "< tail -48 /home/fabian/sizes" using 1:($3/FACTOR) title 'Used by 4th/Aufnahme' with lines lc rgb "#008080", \
---
> plot "/home/fabian/sizes" using 1:($3/FACTOR) title 'Used by 4th/Aufnahme' with lines lc rgb "#008080", \
さて、ここでは出力ファイルの最後にダッシュがありませんが、前のようなset output sprintf("/var/www/sizes/sizes-graph%s.svg", range)
場所range
のようなものを使用できますmonth
が、先頭にダッシュがあります。
しかし、主な問題は次のとおりです。一度tailを使用すると、他の場合はgrepを使用し、最後の場合はどちらも使用しません(ただし、すべての行に一致するgrepを使用できます)。のような言い方はありgnuplot settings.gnuplot plotsource="< tail -48 /home/fabian/sizes"
ますか?
ファビアン