{"id":17687879,"url":"https://github.com/mogenson/ploot","last_synced_at":"2025-08-31T14:46:00.536Z","repository":{"id":93827842,"uuid":"233325509","full_name":"mogenson/ploot","owner":"mogenson","description":"Plot streaming data from stdin to a tty terminal","archived":false,"fork":false,"pushed_at":"2020-11-24T22:21:36.000Z","size":457,"stargazers_count":62,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-18T22:38:07.401Z","etag":null,"topics":["cli","graph","pipe","plot","rust","stdin","terminal","tty"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mogenson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-12T02:09:56.000Z","updated_at":"2025-06-05T06:33:27.000Z","dependencies_parsed_at":"2023-06-26T01:58:30.589Z","dependency_job_id":null,"html_url":"https://github.com/mogenson/ploot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mogenson/ploot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fploot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fploot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fploot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fploot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mogenson","download_url":"https://codeload.github.com/mogenson/ploot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fploot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272995173,"owners_count":25027900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","graph","pipe","plot","rust","stdin","terminal","tty"],"created_at":"2024-10-24T11:23:33.897Z","updated_at":"2025-08-31T14:46:00.484Z","avatar_url":"https://github.com/mogenson.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ploot\n\nPlot streaming data from stdin to a tty terminal. Useful for displaying data piped from a serial port or long running process.\n\n![Example](./demo.svg)\n\nProject used to be called ttyplot-rs.\n\n## Install\n\n```\n$ git clone https://github.com/mogenson/ploot.git\n$ cd ploot\n$ cargo build # or cargo install --path .\n```\n\n## Usage\n\nPipe data from a process into `ploot`. Press \u003ckbd\u003ectrl\u003c/kbd\u003e\u003ckbd\u003ec\u003c/kbd\u003e to quit.\n\n## Data format\n\nEach line of data points can be positive or negative floating point numbers, separated by spaces. Ex: `1 2.3 -4.56`. A new frame of one to multiple series of data points is shown when a newline character is received. Statistics like minimum, maximum, average, and current value are shown for the visible data for each series.\n\n## Options\n\n```\n-m, --min \u003cmin\u003e        Lower bound of window (default: largest data point in window)\n-M, --max \u003cmax\u003e        Upper bound of window (default: smallest data point in window)\n-w, --width \u003cwidth\u003e    Number of data points to display in window (default: terminal width)\n-f, --file \u003cfile\u003e      Log received data to file in CSV format\n```\n\nCopy `ploot.bash` to `/usr/share/bash-completion/completions` for command line tab-completion of options. A bash completion script can also be generated with the `--completions` flag.\n\n## Examples\n\n```\n# build example program\n$ rustc feed_input.rs\n$ ./feed_input | ploot\n```\n\n```\n# serial port\n$ cat /dev/ttyUSB0 | ploot\n```\n\n```\n# CPU percentage\n$ sar 1 | awk '{ print 100.0-$NF; fflush(); }' | ploot \n```\n\n```\n# ping time\n$ ping 8.8.8.8 | awk -F '[= ]' '{ print 0+$(NF-1); fflush(); }' | ploot\n```\n\n```\n# bash saw wave\n$ for ((i=0;; i++)); do echo `expr $i % 20`; sleep 0.1; done | ploot \n```\n\n## Acknowledgment\n\nInspired by [ttyplot](https://github.com/tenox7/ttyplot). Some difference include: `ploot` can plot negative values and an arbitrary number of concurrent series, data window width can be specified, data points are plotted with points instead of bars, data rate is not calculated or plotted.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogenson%2Fploot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmogenson%2Fploot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogenson%2Fploot/lists"}