Skip to content
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Go
Branch: master
Clone or download
Latest commit f950697 Oct 6, 2019

README.rst

asciigraph

Build status Go Report Card Coverage Status GoDoc License Mentioned in Awesome Go

Go package to make lightweight ASCII line graphs ╭┈╯.

https://user-images.githubusercontent.com/7895001/41509956-b1b2b3d0-7279-11e8-9d19-d7dea17d5e44.png

Installation

go get github.com/guptarohit/asciigraph

Usage

Basic graph

package main

import (
    "fmt"
    "github.com/guptarohit/asciigraph"
)

func main() {
    data := []float64{3, 4, 9, 6, 2, 4, 5, 8, 5, 10, 2, 7, 2, 5, 6}
    graph := asciigraph.Plot(data)

    fmt.Println(graph)
}

Running this example would render the following graph:

10.00 ┤        ╭╮
 9.00 ┤ ╭╮     ││
 8.00 ┤ ││   ╭╮││
 7.00 ┤ ││   ││││╭╮
 6.00 ┤ │╰╮  ││││││ ╭
 5.00 ┤ │ │ ╭╯╰╯│││╭╯
 4.00 ┤╭╯ │╭╯   ││││
 3.00 ┼╯  ││    ││││
 2.00 ┤   ╰╯    ╰╯╰╯

Command line interface

This package also brings a small utility for command line usage. Assuming $GOPATH/bin is in your $PATH, simply go get it then install CLI.

CLI Installation

go install github.com/guptarohit/asciigraph/cmd/asciigraph

Feed it data points via stdin:

$ seq 1 72 | asciigraph -h 10 -c "plot data from stdin"
72.00 ┼
65.55 ┤                                                                  ╭────
59.09 ┤                                                           ╭──────╯
52.64 ┤                                                    ╭──────╯
46.18 ┤                                             ╭──────╯
39.73 ┤                                      ╭──────╯
33.27 ┤                              ╭───────╯
26.82 ┤                       ╭──────╯
20.36 ┤                ╭──────╯
13.91 ┤         ╭──────╯
 7.45 ┤  ╭──────╯
 1.00 ┼──╯
         plot data from stdin

Acknowledgement

This package is golang port of library asciichart written by @kroitor.

Contributing

Feel free to make a pull request! :octocat:

You can’t perform that action at this time.