forked from extern/nushell
8.0 KiB
8.0 KiB
histogram
Creates a new table with a histogram based on the column name passed in.
Syntax: histogram <column_name> ...args
Parameters
<column-name>
: name of the column to graph byargs
: column name to give the histogram's frequency column
Examples
Let's say we have this file random_numers.csv
which contains 50 random numbers.
Note: The input doesn't have to be numbers it works on strings too. Try it out.
> open random_numbers.csv
────┬────────────────
# │ random numbers
────┼────────────────
0 │ 1
1 │ 2
2 │ 2
...
47 │ 5
48 │ 5
49 │ 1
────┴────────────────
If we now want to see how often the different numbers were generated, we can use the histogram
function:
> open random_numbers.csv | histogram "random numbers"
───┬────────────────┬───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
# │ random numbers │ count │ frequency
───┼────────────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
0 │ 0 │ 1 │ ******
1 │ 1 │ 15 │ ****************************************************************************************************
2 │ 2 │ 10 │ ******************************************************************
3 │ 3 │ 7 │ **********************************************
4 │ 4 │ 9 │ ************************************************************
5 │ 5 │ 8 │ *****************************************************
───┴────────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────
We can also set the name of the second column or sort the table:
> open random_numbers.csv | histogram "random numbers" probability
───┬────────────────┬───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
# │ random numbers │ count │ probability
───┼────────────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
0 │ 0 │ 1 │ ******
1 │ 1 │ 15 │ ****************************************************************************************************
2 │ 2 │ 10 │ ******************************************************************
3 │ 3 │ 7 │ **********************************************
4 │ 4 │ 9 │ ************************************************************
5 │ 5 │ 8 │ *****************************************************
───┴────────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────
> open random_numbers.csv | histogram "random numbers" probability | sort-by probability
───┬────────────────┬───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
# │ random numbers │ count │ probability
───┼────────────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
0 │ 0 │ 1 │ ******
1 │ 3 │ 7 │ **********************************************
2 │ 5 │ 8 │ *****************************************************
3 │ 4 │ 9 │ ************************************************************
4 │ 2 │ 10 │ ******************************************************************
5 │ 1 │ 15 │ ****************************************************************************************************
───┴────────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────
Of course, histogram operations are not restricted to just analyzing numbers in files, you can also analyze your directories
> ls -fa | histogram type | sort-by count
───┬─────────┬───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
# │ type │ count │ frequency
───┼─────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
0 │ Symlink │ 8 │ *****************
1 │ File │ 9 │ ********************
2 │ Dir │ 45 │ ****************************************************************************************************
───┴─────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────