In my completely unbiased opinion, you should use my tools! feedgnuplot (http://github.com/dkogan/feedgnuplot) to plot stdin in various flexible ways
vnlog (http://github.com/dkogan/vnlog) to manipulate textual tables in various flexible ways Starting with Carsten's modified example to add a header and to just take one year for simplicity: $ ( echo '# date value'; for m in {01..12}; do echo "2020-$m $RANDOM"; done) | tee /tmp/data.vnl # date value 2020-01 16404 2020-02 13997 2020-03 30219 2020-04 32555 2020-05 1214 2020-06 24831 2020-07 4371 2020-08 17144 2020-09 10803 2020-10 18450 2020-11 2738 2020-12 6945 And I can plot: $ < /tmp/data.vnl feedgnuplot --domain --timefmt '%Y-%m' \ --unset grid --lines --points \ --terminal 'dumb 80,40' 35000 +-------------------------------------------------------------------+ | + + + + + + + + + + + | | | | *A | | *** * | 30000 |-+ A* * +-| | * * | | * * | | * * | | * * | 25000 |-+ * * A +-| | * * * | | * * ** | | * * * * | | * * * * | 20000 |-+ * * * * +-| | * * * * | | * * * * A | | * * * * A ** | | A** * * * * ** * * | | ** * * * * * * * * | 15000 |-+ ** * * * * * * * +-| | A * * * * * * * | | * * * * * * * | | * * * * * * * | | * * * * A * | 10000 |-+ * * * * * +-| | * * * * * | | * * * * * | | * * * * * | | * * * * * **| 5000 |-+ * * * * *+-| | ** A *** | | * A | | * | | + + + + A + + + + + + | 0 +-------------------------------------------------------------------+ 01/12/01/01/01/0201/03/01/0401/05/01/06/01/0701/08/01/09/01/10/01/1101/12/20 For the purposes of this email I'm using the dumb terminal, but most of the time you'd omit that, and get a graphical, interactive plot. And it's very, very flexible. Let's take only the data above 10000, plot that AND that squared on the right-hand y axis, let's add a legend, and let's put different text on the x axis for good measure $ < /tmp/data.vnl vnl-filter 'value > 10000' -p date,value,square='value*value' | feedgnuplot --domain --timefmt '%Y-%m' \ --vnl --autolegend --y2 square \ --set 'key bottom left' \ --set 'format x "%b"' \ --unset grid --points \ --terminal 'dumb 80,40' 35000 +---------------------------------------------------------+ 1.1e+09 | + + + A + + + + + | | | | | | B +-| 1e+09 | | | | 30000 |-+ B +-| 9e+08 | | | | | | | +-| 8e+08 | | | | 25000 |-+ +-| 7e+08 | B | | | | A | | +-| 6e+08 | | | | | | 20000 |-+ +-| 5e+08 | | | | | +-| 4e+08 | B | | B | | | 15000 |-+ A +-| 3e+08 | A B | | | | +-| 2e+08 | A | |square A | | value B+ + + + + + + B | 10000 +---------------------------------------------------------+ 1e+08 Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct And so on. Plenty of documentation and samples online. And both are in Debian. AND if you want to do python, there's gnuplotlib (also mine, and also in Debian)

