std.print.format.chart
bar-graph
added in 3.0
(bar-graph xs)(bar-graph xs height)constructs a bar graph
(-> (bar-graph (range 10) 6) (str/split-lines)) => " ▟" " ▗██" " ▟███"
lines:bar-graph
added in 3.0
(lines:bar-graph xs height)formats an ascii bar graph for output
(lines:bar-graph (range 10) 6) => " ▟" " ▗██" " ▟███"
sparkline
added in 3.0
(sparkline xs)formats a sparkline
(sparkline (range 8)) => “▁▂▃▅▆▇█”
table
added in 3.0
(table m {:keys [id-key headers sort-key], :as opts})generates a single table
(table {“[email protected]” {:id 1 :value “a”} “[email protected]” {:id 2 :value “b”}} {:headers :id :email :value :sort-key :email :id-key :email}) => (ascii [“| :id | :email | :value |” “|—–+———–+——–|” “| 1 | "" | "a" |[email protected]” “| 2 | "" | "b" |[email protected]”])
table-basic:format
added in 3.0
(table-basic:format ks rows)(table-basic:format rows)generates a table for output
(table-basic:format :id :value {:id 1 :value “a”} {:id 2 :value “b”})
=> (ascii “| :id | :value |” “|—–+——–|” “| 1 | "a" |” “| 2 | "b" |”)
table-basic:parse
added in 3.0
(table-basic:parse s)reads a table from a string
(table-basic:parse (ascii “| :id | :value |” “|—–+——–|” “| 1 | "a" |” “| 2 | "b" |”)) => {:headers :id :value :data {:id 1 :value “a”} {:id 2 :value “b”}}
table:parse
added in 3.0
(table:parse s {:keys [id-key], :as opts})generates a single table
(table:parse (ascii “| :id | :email | :value |” “|—–+———–+——–|” “| 1 | "[email protected]" | "a" |” “| 2 | "[email protected]" | "b" |”)
{:headers :id :email :value :sort-key :email :id-key :email}) => {“[email protected]” {:id 1 :value “a”} “[email protected]” {:id 2 :value “b”}}
tree-graph
added in 3.0
(tree-graph tree)(tree-graph tree pad prefix check)returns a string representation of a tree
(-> (tree-graph ’[{a “1.1”} [{b “1.2”} {c “1.3”} {d “1.4”}]]) (str/split-lines)) => [“{a "1.1"}” " {b "1.2"}" " {c "1.3"}" " {d "1.4"}" ""]