GUFF(1)

πŸ“¦ version 0.1.0, in nixos 26.05, nixpkgs unstable

πŸ’… GUFF(1) β€” the plot device that ate πŸ’…

okay bestie, so you know GUFF? it's a whole manual page, and the manual name is guff, and honestly it's giving "tiny tool, huge main character energy". it's literally described as a plot device and i'm obsessed πŸŽ€


✨ NAME ✨

guff β€” a plot device πŸ¦‹


🌸 SYNOPSIS 🌸

guff [-A] [-c] [-d WxH] [-f] [-h] [-l xyc] [-m MODE] [-r] [-s] [-S] [-x]
[FILE]

πŸ’– DESCRIPTION πŸ’–

so here's the tea: guff reads a stream of points from a file or from stdin and plots them. that's it. that's the whole vibe. it reads points, it plots them, slay ✨


πŸŽ€ OPTIONS πŸŽ€

🌈 Common options:

  • -d WxH β€” sets the dimensions, aka width and height. it should be formatted like "-d WxH", e.g. "-d 72x40" or "-d 640x480". literally just width, an x, height, periodt πŸ’…
  • -f β€” flips the X and Y axes in the plot. chaotic? maybe. iconic? absolutely πŸ”₯
  • -h β€” prints a help message. bestie needs help sometimes 🫢
  • -l xyc β€” sets X, Y, and/or Count to log-scale. that's log-scale for any of those three, your call ✨
  • -m MODE β€” sets the mode to dot (that's the default), line (SVG only, no cap), or count (which tracks how densely clustered the points are). three modes, three vibes πŸ‘‘
  • -x β€” treats the first column as the X value for the other columns. otherwise, the row number is used for the X value. iykyk πŸ“Š

πŸ¦‹ SVG-only options:

  • -c β€” uses colorblind-safe default colors. inclusive king behavior fr fr πŸ’œ
  • -r β€” draws a linear regression line for each column. math girlies rise 🌸

πŸ™ˆ Rare options:

  • -A β€” don't draw axes. minimalism, but make it plot πŸŽ€
  • -S β€” disables stream mode, meaning it exits at the first blank line. bye-bye at the first empty line πŸ‘‹

⭐ EXIT STATUS ⭐

returns 0. that's it. clean exit, no drama πŸ’…


πŸ”₯ EXAMPLES πŸ”₯

read a series of number rows on stdin, and plot to ASCII once end-of-stream or a blank line is reached:

$ guff

same, but generate SVG:

$ guff -s

read number rows from a file:

$ guff file

plot stdin with a log-scale on the Y axis:

$ guff -ly

treat the first value on each line as the X value for all columns:

$ guff -x

plot stdin to SVG, with lines connecting the points:

$ guff -s -m line

same, but using a colorblind-safe palette:

$ guff -s -c -m line

plot stdin to SVG, and draw a linear regression line for each column:

$ guff -s -r

plot stdin with point counts, to show point density:

$ guff -m count

same, with a log scale for the point counts:

$ guff -m count -lc

same, with SVG output:

$ guff -s -m count -lc

πŸ’€ BUGS πŸ’€

there isn't a way to change the plot options when a blank line resets the data. annoying? yes. real? also yes 😭

and rather than attempt to intelligently handle strange input, guff just skips the rest of the line when strtod(3) indicates there isn't a well-formatted number. it's not being mean, it's just not doing the work for you πŸ™ˆ


guff is Copyright (C) 2015 Scott Vokes vokes.s@gmail.com. respect the original icon πŸ’–


🌟 SEE ALSO 🌟

  • awk(1) β€” go check out awk, bestie, it's a whole vibe too 🐚

okay that's the whole page, and yes i'm still obsessed β€” this little beauty is from July 2015, and it's GUFF(1) all the way down. mwah πŸ’‹ πŸŽ€

πŸ“¦ where this page comes from