Git Product home page Git Product logo

webtreemap's Introduction

webtreemap CLI

No frills treemap visualization from the command line. Includes built-in facilities for visualizing space using on disk or in a JSON file, but the simple input format makes it easy to create a treemap visualization of anything you like.

See a demo of what the visualization looks like here.

Usage

Install with

npm install -g webtreemap-cli

Then run with:

treemap < my_data

Input data format is whitespace-separated lines of size path, where size is a number and path is a '/'-delimited path. For example:

$ cat my_data
100 all
50 all/thing1
25 all/thing2

If the number is omitted, it is assumed to be 1. This lets you visualize the number of files in each directory using the find command, for example:

find . -type f | treemap

Note that there's nothing file-system-specific about the data format -- it just uses slash as a nesting delimiter.

Special inputs

The previous section described the general input format. The treemap binary also includes subcommands for a few specific use cases that come up frequently in practice.

Disk usage of a directory

i.e. "why is node_modules so big!?"

treemap du node_modules

Space used in a JSON file

JSON is ubiquitous, but it's not known for making efficient use of space. You can visualize why a JSON file is large using the du:json subcommand:

treemap du:json file.json

For a GeoJSON file, for example, this can tell you whether feature geometries or properties are using more bytes. If it's geometries, then TopoJSON might be helpful. If it's properties, then you'll need to think more about how you're structuring your data.

Space used in a source map

See source-map-explorer.

Options

  • -f, --format [format]

    Set the output format. By default this is HTML. You may also output JSON or text, which produces a format that may be fed back into treemap. This is useful if you want to use one of the special inputs but edit the results before visualization.

  • -o, --output [path]

    Output to a file rather than opening a web browser or printing to stdout (depending on the output format). If -o is specified but not -f, then the output format will be set based on the output file name's extension.

  • --title [string]

    Set the page title for HTML output.

Development

Run:

yarn build
yarn demo

Develop:

yarn watch
yarn demo

Format code:

yarn fmt

Credits

This was forked from evmar/treemap, which is no longer actively maintained. This is the same visualization used in source-map-explorer.

License

webtreemap is licensed under the Apache License v2.0. See LICENSE.txt for the complete license text.

webtreemap's People

Contributors

evmar avatar danvk avatar aleksanderbodurri avatar ryan-williams avatar cruzr avatar

Stargazers

John Owen Nixon avatar Jake Low avatar Nikolay Borzov avatar MwumLi avatar Neko Null avatar zhouxinyong avatar kuangyan avatar Akat avatar  avatar Cristián Romo avatar Vladislav Forsh avatar Hien Truong avatar alobe avatar Torstein Frogner Knutson avatar Steph Meslin-Weber avatar wong2 avatar Carl-Erik Kopseng avatar Andrejs Agejevs avatar Oliver Joseph Ash avatar Simon Hawkins avatar David Wells avatar  avatar Mohammad Ahmad avatar Benjamin E. Coe avatar Martin Šťovíček avatar  avatar Alexander avatar Joe Lencioni avatar  avatar

Watchers

James Cloos avatar  avatar

webtreemap's Issues

Unforking follow-up

  • Update docs on npm
  • Update README.md
  • Remove the bits that aren't related to the CLI
  • Publish on homebrew
  • Set up GitHub Actions for CI
  • Set up eslint
  • Add --version
  • Add a JSON space usage visualizer
  • Add a JSON input format
  • Add tests
  • Use the tmp module
  • Adjust styles:
    • Make the font bigger
    • Use shades of gray in visualization to indicate depth

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.